- 循環
for(let i = 0 ; i<temp.length;i++){
return 原來的循環
}
for(let i in temp){
return 快速拿到i
}
for(let item of temp){
return 快速拿到每項 上面是temp[i]去到每一項
}
-
filter函數的使用
過濾操作
filter()括号裡面的是回調函數
filter()中的回調函數有一個要求,必須傳回一個boolean值
當傳回true時,函數内部會将自動将這次回調的值加入新的數組中
當傳回false時,函數内部會過濾掉這次的值
filter()最終傳回的是滿足條件的所有值
const num =[10,60,55,66,1,500,300,1]
let numArr=num.filter(function (n) {
//n是上面的每個值
return n<50
//return後面接的是判斷條件
//例如 10<50? =>true 10加到新的數組裡 6<50?=>false 不加到新的數組裡
})
console.log(numArr)
-
map函數的使用
如果想對數組中所有的函數進行操作,用map函數
const num =[10,60,1,500,300,1];
let newNums= num.map(function () {
return n*2
//return 後面接的是操作
})
console.log(newNums); //[20,120,2,1000,600,2]
3.reduce
對數組中所有的元素進行彙總
const num =[10,60,1,500];
let temp = num.reduce(function (prevValue,n) {
return prevValue+n
},0)
//回調函數後面 的數字 0 是初始值 也就是下面的第一個prevValue
// prevValue 是上次傳回的值
// 第一次 prevValuee是 0 n 是10
// 第二次 prevValue是 10 n 是60
// 第三次 prevValue是 70 n 是1
// 第四次 prevValue是 71 n 是500 因為數組中有四個元素
//最後一次 傳回最後一次 571
- 另:
//如果數組的值是對象
books:[{
id:1,
price:20,
count:1
},{
id:2,
price:40,
count:2
}]
num.reduce(function (pre,book) {
return pre+book.price*book.count
},0)
4.彙總
- 把上面的連起來(除了另)
const num =[10,60,1,500];
let temp = num.filter(function (n) {
return n<10
}).map(function (n) {
return n*2
}).reduce(function (prevValue,n) {
return prevValue+n
},0)
- 把上面的再簡化一下(箭頭函數)