- 区别
1. each 是 art-template 的模板语法,专属的
+ {{each 数组}}
+ <li>{{ $value }}</li>
+ {{/each}} 这是 art-template 模板引擎支持的语法,只能在模板字符串中使用
2. jQuery的 each
$.each(数组, function)
$('div').each(function) 一般用于遍历 jQuery 选择器选择到的伪数组实例对象
$('div')是伪数组是对象,对象的原型链中没有 forEach, 对象的原型链是 Object.prototype
// 1. 方便的遍历 jQuery 元素
// 2. 可以在不兼容 forEach 的低版本浏览器中使用 jQuery 的 each 方法
代替方法:
;[].slice.call($('div')).forEach(function (item) {console.log(item)})
3. forEach
+ forEach 是 EcmaScript 5 中的一个数组遍历函数,是 JavaScript 原生支持的遍历方法 可以遍历任何可以被遍历的成员
+ jQuery 的 each 方法和 forEach 几乎一致
+ 由于 forEach 是 EcmaScript 5 中的,所以低版本浏览器不支持
- 伪数组概念
var obj = {
0: 'a',
1: 'b',
2: 'c',
length: 3
}
;[].push.call(obj, 'd')
console.log([].slice.call(obj))
;[].forEach.call(obj, function (num, index) {
console.log(num)
})