1.forEach()
用法:array.forEach(function(item,index){})
没有返回值,只是单纯的遍历
2.map()
用法:array.map(function(item,index){})
遍历并对其进行操作,返回新数组,原数组不变
3.filter()
用法:array.filter(function(item,index){})
筛选符合条件的元素并返回新数组,原数组不变
4.find()
用法:array.find(function(item,index){})
返回符合条件的第一个元素,原数组不变
5.every()
用法:array.every(function(item,index){})
检测是否所有元素都符合条件,返回true或false
6.some()
用法:array.some(function(item,index){})
检测数组中是否有满足条件的元素,返回true或false
7.reduce()
用法:array.reduce((sum, item) => […sum, …item.data], [])
参数一:回调函数
参数一:累加的值
参数二:每一项的值
参数三:下标
参数四:数组
参数二:初始值
// item.data 不是数组 就不用加…
reduce常用的示例:
1.累加
const arr = [1,2,3,4,5];
const arrSum = arr.reduce((sum, item) => sum + item, 0);
console.log(arrSum); // console 15
2.二维数据结构变成一维数组
const arr = [
{
groupName: 'A',
groupData: ['阿里巴巴', '阿根廷']
},
{
groupName: 'B',
groupData: ['百度', '柏林']
},
{
groupName: 'T',
groupData: ['腾讯', '天津']
},
];
const arrSum = arr.reduce((sum, item) => [...sum, ...item.groupData], []);
console.log(arrSum); // ["阿里巴巴", "阿根廷", "百度", "柏林", "腾讯", "天津"]
3. 检测对象在数组中的下标
const arr = [{id: 1}, {id: 2}];
const i = arr.reduce((pre, item, i) => item.id === 3 ? i : pre, -1);
console.log(i);
4. 标出一个数组是否包含另一个数组的元素
const arr = [{id: 1, name: '小王'}, {id: 2, name: '小李'}, {id: 3, name: '小周'}, {id: 4, name: '小红'}];
const isImportant = [1, 3];
const users = arr.filter(n => isImportant.find(p => n.id === p));
console.log(users); // [{id: 1, name: '小王'}, {id: 3, name: '小周'}]
5. more...