写一些简单的新的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()
此方法是将所有元素进行判断,将满足条件的元素作为一个新的数组返回
let
arr = [1, 2, 3, 4, 5]
const isBigEnough => value => value >= 3
let
newArr = arr.filter(isBigEnough )
//newNum = [3, 4, 5] 满足条件的元素返回为一个新的数组
-
Array.every()
此方法是将所有元素进行判断返回一个布尔值,如果所有元素都满足判断条件,则返回true,否则为false:
let
arr = [1, 2, 3, 4, 5]
const isLessThan4 => value => value < 4
const isLessThan6 => value => value < 6
arr.every(el=>el<4)
//false
arr.every(el=>e.<6)
//true
-
Array.some()
此方法是将所有元素进行判断返回一个布尔值,如果存在元素都满足判断条件,则返回true,若所有元素都不满足判断条件,则返回false:
let
arr = [1, 2, 3, 4, 5]
const isLessThan4 => value => value < 4
const isLessThan6 => value => value < 6
arr.some(el=>el<4)
//false
arr.some(el=>e.<6)
//true
-
Array.reduce()
此方法是所有元素调用返回函数,返回值为最后结果,传入的值必须是函数类型:
let
arr = [1, 2, 3, 4, 5]
const add = (a, b) => a + b
let
sum = arr.reduce(add)
//sum = 15 相当于累加的效果
与之相对应的还有一个 Array.reduceRight() 方法,区别是这个是从右向左操作的