数组相关方法:
- some | every
- includes
- concat
- filter
- forEach | map
- find | findIndex
- join
- pop | shift
- push | unshift
- reduce | reduceRight
- slice
- sort
- splice
- toString
- reverse
1.怎么区分数组的方法 some | every
some 是否存在一个满足判断条件
every 是否每一个都满足判断条件
let arr = [1,2,3,4,5,6]
let someZhi = arr.some(i => i >= 3)
console.log(someZhi) // true
let everyZhi = arr.every(i => i >= 3)
console.log(everyZhi) // false
2.数组和字符串的 includes
数组是会判断区分字符串和数字的,字符串不会
console.log('123'.includes(1)) // true
console.log('123'.includes('1')) // true
console.log([1,2,3].includes(1)) // true
console.log([1,2,3].includes('1')) // false
3.数组合并 concat
数组合并可以一个可以多个
let a = ["Google", "Taobao"];
let b = ["Runoob"];
let c = ["Wiki", "Zhihu"]
let d = a.concat(b,c);
console.log(d) // ['Google', 'Taobao', 'Runoob', 'Wiki', 'Zhihu']
4.数组过滤 filter
数组过滤出满足条件的返回出来(不影响原数组)
let arr = [1,2,3,4,5,6]
let filterZhi = arr.filter(i => i >= 3)
console.log(filterZhi ) // [3, 4, 5, 6]
5.数组遍历 forEach | map
map会分配内存空间存储新数组并返回,forEach不会返回数据
let arr = [1,2,3,4,5,6]
let forList = arr.forEach(i=>{
console.log(i) // 依次打印 1 2 3 4 5 6
// return i // reuturn 也无返回数据
})
console.log(forList) // undefined
let mapList = arr.map(i=>{
console.log(i) // 依次打印 1 2 3 4 5 6
return i
})
console.log(mapList) // [1, 2, 3, 4, 5, 6]
6.数组遍历 find | findIndex
find返回值 findIndex 返回下标
let arr = [1,2,3,4,5,6]
let item = arr.find(i=>i==3)
console.log(item) // 3
let indexLast = arr.findIndex(i=>i==3)
console.log(indexLast) // 2
7.数组转字符串 join
join 以xx拼接为字符串 默认以,拼接
let arr = [1,2,3,4,5,6]
let item = arr.join('')
let item1 = arr.join(',')
console.log(item) // 123456
console.log(item1) // 1,2,3,4,5,6
8.数组pop | shift
pop 移除数组最后一位元素 shift移除数组第一位元素
let arr = [1,2,3,4,5,6]
let item = arr.pop()
let item1 = arr.shift()
console.log(item) // 6
console.log(item1) // 1
// arr [2, 3, 4, 5]
9.数组push | unshift
push 对数组后面添加一位元素 unshift 对数组第一位添加元素
let arr = [1,2,3,4,5,6]
let item = arr.push(7)
let item1 = arr.unshift(8)
console.log(item) // 7
console.log(item1) // 8
// arr [8, 1, 2, 3, 4, 5, 6, 7]
10.数组reduce| reduceRight
reduce迭代进行运算 reduceRight斜体样式与reduce()其实是相同的,只是遍历的顺序相反,它是从数组的最后一项开始,向前遍历到第一项
let arr = [1,2,3,4]
let ret = arr.reduce(function(a,b){
console.log(a,b)
return a*b;
})
console.log(ret);// 24
let ret = arr.reduceRight(function(a,b){
console.log(a,b)
return a*b;
})
console.log(ret);// 24
11.数组切片 slice
slice 切片 下标开始下标结束 ,包含前下标不含后下标 (不影响原数组)
let arr = [1,2,3,4]
let ret = arr.slice(0,2)
console.log(ret,arr) //[1, 2] (4) [1, 2, 3, 4]
12.数组排序 sort
a-b 正序 b-a倒叙
let arr = [1,2,3,4,4,3,2,1]
let ret = arr.sort((a,b)=>a-b)
console.log(ret) // [1, 1, 2, 2, 3, 3, 4, 4]
let arr = [1,2,3,4,4,3,2,1]
let ret = arr.sort((a,b)=>b-a)
console.log(ret) // [4, 4, 3, 3, 2, 2, 1, 1]
13.数组增删改 splice
传递一个参数,表示从这个参数的位置开始一直截取到最后
传递两个参数,第一个参数表示开始的位置,第二个参数表示要截取的个数;如果第二个参数为0,则表示不截取,返回的空数组,原来的数组不变
传递三个参数,第二位为0表示新增 第二位不为0表示替换 并截取
// 传递二个参数
let arr = [1,2,3,4]
let arrList = arr.splice(1)
console.log(arr,arrList) // [1] [2, 3, 4]
// 传递二个参数
let arr = [1,2,3,4]
let arrList = arr.splice(1, 2) // 截取
console.log(arr,arrList) //[1, 4] [2, 3]
// 传递三个参数
let arr = [1,2,3,4]
let arrList = arr.splice(1, 0, 5) // 新增
console.log(arr,arrList) // [1, 5, 2, 3, 4] []
let arr = [1,2,3,4]
let arrList = arr.splice(1, 2, 55) // 截取
console.log(arr,arrList) //[1, 55, 4] [2, 3]
14.数组转字符串 toString
let arr = [1,2,3,4]
let str = arr.toString()
console.log(str) // 1,2,3,4
15.数组反转 reverse
(影响原数组)
let arr = [1,2,3,4]
let str = arr.reverse()
console.log(str) // [4, 3, 2, 1]