- 循环
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)
- 把上面的再简化一下(箭头函数)
let temp =nums.filter(n=>n<100).map(n=>n*2).reduce((pre,n)=>pre+n)