ES5新增的5个数组迭代方法
(1)every():对数组中的每一项给定函数,如果对该函数的每一项都返回true,则返回true.
|
|
(2)some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
|
|
(3)forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
|
|
(4)filter():对数组中的每一项运行给定函数,返回该函数会返回true 的项组成的数组。
|
|
(5)map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
|
|
数组对象和类数组对象的区别
类数组对象:只包含使用从零开始,且自然递增的整数作为键名,并且定义了length表示元素个数的对象,我们就认为它是类数组对象!
js中常见的类数组有arguments()对象和DOM方法的返回结果,如document.getElementsByTagName().
|
|
数组对象
|
|
其实从源代码上面看没什么区别,但js中支持:
1:类名[属性名称] = 值
2:类名.属性名称 = 值
要是你想在类中使用动态的属性,就必须使用第一个
看看区别:
类数组对象:
|
|
数组对象:
|
|
判断一个对象是否属于类数组
|
|
由于类数组不具有数组所具有的操作数组的方法,将类数组转换为数组之后就能调用如shift,unshift,splice,slice,concat,reverse,sort等这些强大的方法。
类数组转换为数组的方法
|
|
首先Array.prototype.slice.call(arrayLike)的结果是将arrayLike对象转换成一个Array对象。所以其后面就可以直接调用数组具有的方法,例如:
|
|