ES6|ES6 中 数组新增的方法小结

【ES6|ES6 中 数组新增的方法小结】ES6中新增的方法有:

  • Array.isArray(): 判断是否是一个数组
  • forEach(): 对数组进行遍历操作
  • map(): 遍历数组,可以对数组的每一项做相关的操作,并且会返回一个新数组,不会改变原来数组
  • filter(): 遍历数组的每一项,如果数组中某个元素满足某个条件,将当前的元素push到一个新数组中
  • some(): 把数组的每一项和某个条件进行 对比,如果有一个符合条件,就会返回 true,否则返回false
  • every():把数组的每一项和某个条件进行 对比,如果全部符合条件,就会返回 true,否则返回false
下面对上面的方法一一进行详解:
1、Array.isArray():
var s = '代码测试 Array.isArray'; console.log(Array.isArray(s))// falsevar arr = []; console.log(Array.isArray(arr)); // truevar obj = {}; console.log(Array.isArray(obj)); // false

2、forEach():
var arr = ['12','13','-12','0','8']; // 遍历数组,并且给每一项都加上 10 // index 代表数组的下标,value 代表数组元素的值, array 就是遍历的数组本身 arr.forEach(function(value,index,array){ //console.log("%c" + index + '======' + value,'color:red; ')// 加上 10 arr[index] =String( Number(value) + 10 ); }); console.log(arr); // ["22", "23", "-2", "10", "18"]var arr = [1,2,,3,5]; arr.forEach(function(index,val){ }); console.log(arr); //[1, 2, empty, 3, 5]; var arr = [1,2,,3,5]; var obj={}; arr.forEach(function(val,index){ return obj[index] = val }); console.log(obj); //{0: 1, 1: 2, 3: 3, 4: 5}

3、map():
注意:map 的函数中 需要用 return 返回值
var arr = [12,34,4,-1,10,66]; // 每个值 加上10 // map 循环数组以后会生成一个 新的数组,所以需要定义一个变量 接受处理后的数据var newArr = arr.map(function(value,index,array){ return value + 10 }); console.log(newArr); // [22, 44, 14, 9, 20, 76]// map 不使用return var arr = [1,2,,3,5]; var a = arr.map(function(index,val){ }); console.log(a); //[undefined, undefined, empty, undefined, undefined]//使用return var arr = [1,2,,3,5]; var a = arr.map(function(index,val){ return index; }); console.log(a); //[1, 2, empty, 3, 5]

4、filter():
var arr = [59,60,90,50,32,78]; //需要挑选出 值大于 60 的元素var newArr = arr.filter(function(value,index){return value > 60 }); // filter 和 map 处理后会返回一个 新的数组,如果没有 满足的条件的元素 会返回 一个空数组 console.log(newArr); // [90,78]//需要挑选出 值大于 99 的元素var newArr2 = arr.filter(function(value,index){return value > 99 }); console.log(newArr2); // 返回值是 []

5、some():
var arr = [12,13,44,45,78]; var res = arr.some(function(value,index){// 判断 arr 中是否 有大于 80 的元素 return value > 80 }); console.log(res); // false// 我们还可以 利用 some 这个方法 去判断 数组中是否包含某个元素var res2 = arr.some(function(value,index){// 判断 数组中是否有 12 return value =https://www.it610.com/article/== 12}); console.log(res2); // true

6、every():
var arr = [12,13,14,44,56,9]; // 判断 是否 所有的元素 都大于 10var res = arr.every(function(value,index){return value >10 }); console.log(res); // false

小结:除了 forEach() 不需要用变量接受返回值,其他剩下遍历 数组的方法都要 用一个变量去接收;forEach 是对原数组进行操作,其他的都不会 破坏原数组

    推荐阅读