js 数组整理

191 阅读1分钟

1.forEach //声明式写法,不关心内部如何实现

let arr = [1,2]
arr.forEach(item => {
    console.log(item)
})

2.for in //key 会变成字符串类型,数组的私有属性也可以打印出来

let arr = [1,2]
arr.name = 'xiaofeilong'
for(let key in arr) {
    console.log(key)
}

3.for of //支持return,并且只能遍历数组,不遍历数组的私有属性

let arr = [1,2]
arr.name = 'xiaofeilong'
for(let key of arr) {
    console.log(key)
}

4.filter //数组过滤,回调函数的返回结果为true,则把这一项丢给新数组

let arr = [1,2,3,4,5]
let newArr = arr.filter(item => item>3)
console.log(newArr)

5.map //映射, 将原数组映射为一个新数组

let arr = [1,2,3,4,5]
let newArr = arr.map(item => `<li>${item*3}</li>`)
console.log(newArr)

6.includes //包含,返回bool类型

let arr = [1,2,3,4,5]
console.log(arr.includes(3))

7.find // 查找,找到回调函数为true的第一个值,返回该值

let arr = [1,2,3,4,5]
let newString = arr.find((item, index) => item>3)
console.log(newString)  // 4

8.every // 遍历每一项,回调有flase,则返回flase,否则返回true

let arr = [1,2,3,4,5]
let newBool1 = arr.every((item, index) => item<7)
console.log(newBool1)  // true
let newBool2 = arr.every((item, index) => item<3)
console.log(newBool2)  // false

9.reduce //收敛参数,返回回调函数的结果 reduce(callback, initialValue) // initialValue 指定第一次的初始值,可选

let sum = [{price: 2, count: 3}, {price: 3, count: 4}].reduce((prev, next) => prev + next.price*next.count, 0)
console.log(sum) //18