写一些简单的新的js数组的方法供大家参考
-
Array.map()
此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组1 let arr = [1, 2, 3, 4, 5] let newArr = arr.map(x => x*2) //arr= [1, 2, 3, 4, 5] 原数组保持不变 //newArr = [2, 4, 6, 8, 10] 返回新数组
2 let arr = [{num:1},{num:2}];
let newArr = arr.map(x=>Object.assign(x,{num2:x*2}));
//newArr = [{num:1,num2:2},{num:2,num2:4}]
-
-
Array.forEach()
此方法是将数组中的每个元素执行传进提供的函数,没有返回值,直接改变原数组,注意和map方法区分let arr = [1, 2, 3, 4, 5]arr.forEach(x => x*2) // arr = [2, 4, 6, 8, 10] 数组改变,注意和map区分 -
Array.filter()
此方法是将所有元素进行判断,将满足条件的元素作为一个新的数组返回letarr = [1, 2, 3, 4, 5]const isBigEnough => value => value >= 3letnewArr = arr.filter(isBigEnough )//newNum = [3, 4, 5] 满足条件的元素返回为一个新的数组 -
Array.every()
此方法是将所有元素进行判断返回一个布尔值,如果所有元素都满足判断条件,则返回true,否则为false:letarr = [1, 2, 3, 4, 5]const isLessThan4 => value => value < 4const isLessThan6 => value => value < 6arr.every(el=>el<4)//falsearr.every(el=>e.<6)//true -
Array.some()
此方法是将所有元素进行判断返回一个布尔值,如果存在元素都满足判断条件,则返回true,若所有元素都不满足判断条件,则返回false:letarr = [1, 2, 3, 4, 5]const isLessThan4 => value => value < 4const isLessThan6 => value => value < 6arr.some(el=>el<4)//falsearr.some(el=>e.<6)//true -
Array.reduce()
此方法是所有元素调用返回函数,返回值为最后结果,传入的值必须是函数类型:letarr = [1, 2, 3, 4, 5]const add = (a, b) => a + bletsum = arr.reduce(add)//sum = 15 相当于累加的效果与之相对应的还有一个 Array.reduceRight() 方法,区别是这个是从右向左操作的