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...