ES6中新增的方法有:
下面对上面的方法一一进行详解:
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 是对原数组进行操作,其他的都不会 破坏原数组