1.forEach
let tempArr = ['aa','bb','cc'];
tempArr.forEach((item,index) => {
...//item: aa/bb/cc index:0/1/2
});
2.map(适用于键值对存取)
let testData = [{Name: 'hk', age: 18, score: 100}];
let testArr = testData.map(v => {
return {
label: v.Name,
value: v.age
}
});// {label: 'hk',value:18}
3.for of
let testData = ['huawei', 'xiaomi', 'apple'];
for (let value of testData ) {
console.log(value);// huawei,xiaomi,apple
}
4.filter(可以用于去重,过滤数据)
unction unique(arr) {
return arr.filter(function(item, index, arr) {
//当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
return arr.indexOf(item, 0) === index;
});
}
var arr = [1,1,'erewr','等等',true,false];
console.log(unique(arr))// [1, "erewr", true, false]
5.some(遍历数组元素,查找指定元素,找到返回true停止遍历,反之返回false)
let users = [
{ name: 'Perter', age: 22 },
{ name: 'Lily', age: 15 },
{ name: 'Lisa', age: 58 },
];
let ageRestriction = users.some(user => {
return user.age <= 18;
});//true
6.every(遍历数组,每一项都符合条件返回true,反之返回false)
let testArr = [3,5,6,0,-1,9];
let result = testArr .every(val => val > 0); //false
7.reduce(最常用于数组求和)
let numArr = [21,34,566,88,90];
let result = numArr.reduce((total, num) => total + num);
8.reduceRight(用法和reduce一样,遍历顺序不一样,是从后往前遍历)
9.find(遍历数组查找第一个符合的项,找到一个返回true,反之返回undefined)
[1, 4, -5, 10].find((n) => n < 0)
// -5
10.findindex(遍历数组查找第一个符合的项的索引值,反之返回-1)
[1, 5, 10, 15].findIndex((value, index, arr) => {
return value > 9;
}) // 2
11.keys(ES6提供的新方法,对键名的遍历)
for (let index of ['a', 'b'].keys()) {
console.log(index);
}
// 0
// 1
11.values(对键值的遍历)
for (let ele of ['a', 'b'].keys()) {
console.log(ele );
}
// 'a'
// 'b'
12.entries(对键值对的遍历)
for (let [index, elem] of ['a', 'b'].entries()) {
console.log(index, elem);
}
// 0 "a"
// 1 "b"