-
some
arr: [1,2,3,4,5,6]
testArr() {
let a = this.arr.some((item) => { return item === 1})
console.log(a, ‘数组中是否其中有一项符合 后面的判断,返回值为布尔型’)
} -
every
arr: [1,2,3,4,5,6]testArr() {
let a = this.arr.every((item) => { return item === 1})
console.log(a, ‘数组中是否每一项都等于1,返回值为布尔型’)
} -
filter
arr: [1,2,3,4,5,6]
testArr() {
let a = this.arr.filter((item) => { return item === 1})
或
let a = this.arr.filter(item => item === 1)
console.log(a, ‘数组中是否每一项都等于1,返回值为一个全新的数组’)
} -
深拷贝与浅拷贝
-
遍历数组方法 (不支持return(有返回值):for、foreach )
5.1 for 循环
可以将数组长度暂时存起来,避免重复获取数组长度,当数组较大时优化才比较明显
5.2 foreach循环
没有返回值,不支持return,不影响原数组
5.3 map循环
有返回值,支持return,不影响原数组
5.4 for of循环
for(let item of Array) { console.log(item)}
支持 break、continue、return语句
5.5 filter循环
Array.filter(item => item === 1)
结果返回 一个新数组
5.6 find循环
Array.find(item => item === 1)
返回符合条件的item
5.7 reduce循环
Array = [0,1,2,3,4,5]
let add = Array.reduce((pre, cru) => pre + cru, 5)5+0 = 5##
5+1 = 6##
6+2 = 8##
8+3 = 11##
11+4 = 15##
最终返回15
5.8 reduceRight循环
同reduce结果一样 方向相反
5.9 findIndex循环
Array = [1,1,2,3,4,5]
Array.findIndex(item => item === 1)
打印结果:0
findIndex只要找到一个符合条件的 就会返回true 并返回索引 (缺点:无法拿到所有符合条件的索引)
找不到则返回-1
5.10 keys、values、entries循环
Es6新增 keys()返回键名列表,values()返回键值列表,entries()返回键值对
Array = [1,1,2,3,4]
Object.keys(Array)
打印结果;
[“0”,“1”,“2”,“3”,“4”]
Object.values(Array)
打印结果:
[1,1,2,3,4]
Object.entries(Array)
打印结果:
[[“0”,1],[“1”,1],[“2”,2],[“3”,3],[“4”,4]]