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))// false

var arr = [];
console.log(Array.isArray(arr));// true

var 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 === 12

});

console.log(res2);// true

6、every():

var arr = [12,13,14,44,56,9];

// 判断 是否 所有的元素 都大于 10

var res = arr.every(function(value,index){

    return value >10
});

console.log(res);// false

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

你可能感兴趣的:(ES6 中 数组新增的方法小结)