小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
1.filter(ES6)遍历数组,过滤出符合条件的元素并返回一个新数组
var arr = [
{ id: 1, name: '小明', done: true },
{ id: 2, name: '小华', done: true },
{ id: 3, name: '小红', done: false }
]
var newArr = arr.filter(function (item, index) {
return item.done
})
console.log(newArr)
// [{ id: 1, name: '小明', done: true },{ id: 2, name: '小华', done: true }]
2. some(ES6)遍历数组,只要有一个以上的元素满足条件就返回 true,否则返回 false
var arr = [
{ id: 1, name: '小明', done: true },
{ id: 2, name: '小华', done: true },
{ id: 3, name: '小红', done: false }
]
var bool = arr.some(function (item, index) {
return item.done
})
console.log(bool) // true
3.every(ES6)遍历数组,每一个元素都满足条件 则返回 true,否则返回 false
var arr = [
{ id: 1, name: '小明', done: true },
{ id: 2, name: '小华', done: true },
{ id: 3, name: '小红', done: false }
]
var bool = arr.every(function (item, index) {
return item.done
})
console.log(bool) // false
4.find(ES6)遍历数组,返回符合条件的第一个元素,如果没有符合条件的元素则返回 undefined
var arr = [1, 1, 2, 2, 3, 3, 4, 5, 6]
var num = arr.find(function (item, index) {
return item === 3
})
console.log(num) // 3
5. findIndex(ES6)遍历数组,返回符合条件的第一个元素的索引,如果没有符合条件的元素则返回 -1
var arr = [1, 1, 2, 2, 3, 3, 4, 5, 6]
var num = arr.findIndex(function (item) {
return item === 3
})
console.log(num) // 4
6. reduce (ES6)用来实现累加的效果 输出的总和是 sum+val(数值)
// reduce 用来实现累加的效果 (常用于写购物车价格的累加)
// 声明一个数组 数组里面放数字 让其里面的数字显示为累加的总和
let arr=[200,200,100]
let result =arr.reduce((sum,val,index)=>{
200+200 index
400+100 index
// sum是总加后的和 val是变量里面的值 index为索引值
console.log(sum,val,index)
// 200 200 1
// 400 100 2
return sum +val;
})
console.log(result) // 500