遍历数组的主要方法为for
、forEach
、map
、for in
、for of
。
Array.prototype.forEach()
arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
callback
为数组中每个元素执行的函数,该函数接收一至三个参数。
currentValue
数组中正在处理的当前元素。
index
可选 数组中正在处理的当前元素的索引。
array
可选 正在操作的数组。
thisArg
可选 当执行回调函数callback
时,用作this
的值。
注意如果使用箭头函数表达式来传入callback
,thisArg
参数会被忽略,因为箭头函数在词法上绑定了this
值。
注意如果想在遍历执行完之前结束遍历,那么forEach
与map
并不是好的选择。
Array.prototype.map()
arr.map(callback(currentValue [, index [, array]])[, thisArg])
callback
为数组中每个元素执行的函数,该函数接收一至三个参数。
currentValue
数组中正在处理的当前元素。
index
可选 数组中正在处理的当前元素的索引。
array
可选 正在操作的数组。
thisArg
可选 当执行回调函数callback
时,用作this
的值。
注意如果使用箭头函数表达式来传入callback
,thisArg
参数会被忽略,因为箭头函数在词法上绑定了this
值。
注意map
回调函数return
的结果组成了新数组的每一个元素,原数组被映射成对应新数组。
for of
为ES6
新增,其在可迭代对象包括Array
,Map
,Set
,String
,TypedArray
,arguments
对象等等上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。
Array.prototype
还提供了对于数组的判断与过滤操作,every()
、some()
、find()
、findIndex()
、filter()
。