ECMAScript 5 Array新增方法
方法 | 描述 |
---|---|
indexOf | 返回某个指定的字符串值在字符串中首次出现的位置,如果不存在则返回-1 |
lastIndexOf | 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索,如果不存在则返回-1 |
every | 测试数组的所有元素是否都通过了指定函数的测试 |
some | 测试数组的某些元素是否都通过了指定函数的测试 |
forEach | 令数组的每一项都执行指定的函数 |
map | 返回一个由原数组中每个元素调用某个指定方法得到的返回值所组成的新数组 |
filter | 利用所有通过指定函数处理的元素创建一个新的数组并返回 |
reduce | 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终缩减为一个值 |
reduceRight | 接收一个函数作为累加器,数组中的每个值(从右到左)开始缩减,最终缩减为一个值 |
let colors = ['red', 'blue', 'green', 'green'];
console.log(colors.indexOf('green')); //2
console.log(colors.lastIndexOf('green')); //3
console.log(colors.every((color) => color.length >= 3)); //true,判断是否所有元素长度均大于等于3
注:
如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
如果所有元素都满足条件,则返回 true。
every() 不会对空数组进行检测。
every() 不会改变原始数组。
console.log(colors.some((color) => color.length > 4)); //true,判断是否有至少一个元素长度大于4
colors.forEach((color) => {
if(color === 'green'){
console.log(color)
}
}); //green green
console.log(colors.map((color) => {
if(color === 'green'){
return color;
}
})); //[undefined, undefined, "green", "green"]
console.log(colors.filter((color) => {
if(color === 'green'){
return color;
}
})); //["green", "green"]
console.log(colors.reduce((color, nextColor) => color + ',' + nextColor)); //red,blue,green,green
console.log(colors.reduceRight((color, nextColor) => color + ',' + nextColor)); //green,green,blue,red
明天再抽时间补充ES6 Array新增方法~~~