1、reduce();
reduce()方法接收一個函數作爲累加器,數組中的每個值(從左到右)開始合併,最終爲一個值。
array.reduce(callback,initialValue);
callback:執行數組中每個值的函數(也可以叫做reducer),包含4個參數:
1.previousValue:上一次調用回調返回的值,或者是提供的初始值(initialValue)
2.currentValue:數組中當前被處理的元素
3.index:當前元素在數組中的索引
4.array:調用reduce的數組
let arr = [4,2,2];
let num = arr.reduce((x,y)=>{
// return x*y;
return x+y;
})
console.log(num);
let result = [{score:66,subject:'math'},{score:21,subject:'chinese'},{score:12,subject:'english'}];
let totalScore = result.reduce((pre,cur)=>{
return pre + cur.score;
},101)
console.log(totalScore)
2、filter()
1、filter()方法使用指定的函數測試所有元素,並創建一個包含所有通過測試的元素的新數組;
array.filter(callback,thisArg);
2、callback:用來測試數組的每個元素的函數,包含三個參數;
返回true表示保留該元素(通過測試),返回false則不保留;
currentValue:數組中當前被傳遞的元素.
let filterArr = [1,2,3,4,5,6,8];
var a = filterArr.filter((item)=>{
return item > 5;
})
console.log(a)
var todos = [{
id: 1,
completed: true
}, {
id: 2,
completed: false
}, {
id: 3,
completed: true
}, {
id: 4,
completed: true
}, {
id: 5,
compelted: false
}];
var completedTodos = todos.filter((item) => {
// return item.completed;
return !item.completed;
});
console.log(completedTodos);
3、map()
1、map()方法返回一個由原數組中的每個元素調用一個指定方法後的返回值組成的新數組;
array.map(callback,thisArg)
callback:原數組中的元素調用該方法後返回一個新的元素;
currentValue:數組中當前被傳遞的元素.
let result = [{score:66,subject:'math'},{score:21,subject:'chinese'},{score:12,subject:'english'}];
var mapArr = [1,2,3,1];
var m = mapArr.map((item)=>{
if(item > 2){
console.log(item)
}
});
result.map((item)=>{
console.log(item.score)
});