ES5 数组的特性及比较
forEach、map、filter 、reduce 、reduceRight
方法/特性 | forEach | map | filter | reduce | reduceRight |
---|---|---|---|---|---|
作用 | 为数组中的每一个元素执行一次函数 | 通过指定函数处理数组中的每个元素,并返回处理后的数组 | 检测元素数值并返回所有符合条件元素的数组 | 将数组元素计算为一个值(从左到右) | 将数组元素计算为一个值(右到左) |
有返回值 | 否 | 是 | 是 | 是 | 是 |
改变原数组 | 是 | 否 | 否 | 否 | 否 |
语法 | array.forEach(function(currentValue, index, arr), thisValue) | array.map(function(currentValue,index,arr), thisValue) | array.filter(function(currentValue,index,arr), thisValue) | array.reduce(function(total, currentValue, currentIndex, arr), initialValue) | 同左 |
every、some
方法/特性 | every | some |
---|---|---|
作用 | 检查数组中的所有值是否都符合条件 | 检查数组中是否有值符合条件 |
返回值 | Boolean | Boolean |
用法 | array.every(function(currentValue,index,arr),thisValue) | array.some(function(currentValue,index,arr),thisValue) |
indexOf、lastIndexOf
方法/特性 | indexOf | lastIndexOf |
---|---|---|
作用 | 检测数组中的某个元素值并返回其首次出现位置 | 检测数组中的某个元素值并返回其最后出现的位置 |
参数 | 两个参数,第一个为要查找的元素,第二个为开始位置 | 两个参数,第一个为要查找的元素,第二个为开始位置 |
语法 | array.indexOf(item,start) | array.lastIndexOf(item,start) |