编辑代码

// 创建数组
let arr = [1,2,3]
let arr1 =new Array(1,2,3)
let arr2 = Array.from( new Set([1,2,3,1,'1']) )
console.log('arr',arr)
console.log('arr1',arr1)
console.log(arr2)

Array.of(7)  // [7]
new Array(7) // [,,,,,,] 数组长度为7 ,空数组 undefined

// 判断变量是否为数组
Array.isArray([]) // true   

//操作修改数组
arr.push(4) // [1,2,3,4]  末尾添加元素
arr.pop() // [1,2,3]  删除末尾元素
arr.shift() // [2,3] 删除头部元素
arr.unshift(1) // [1,2,3] 头部添加元素

//查找元素

arr.indexOf(1) // 0  返回元素索引 或 -1
arr.find(item =>item === 1) // 返回符合条件的元素  或  undefined
arr.findIndex(item => item === 1) // 返回符合条件的元素索引 或 -1
arr.includes(1) // 符合条件返回 true  或  false
arr.lastIndexOf(3) // 2 返回元素在数组中最后一个的索引

// 拼接数组
arr.concat([4]) // [1,2,3,4]
let newArr= [...arr,4]

let arr3 = [1,2,3,4,5,6,7]
arr3.copyWithin(4,1,6) // 不改变数组长度,返回改变后的数组
console.log(arr3)

let arr4  = [1,2,3,4,5,6,7]
arr4.fill(9,2,9) // 使用固定数值填充数组,返回改变后的数组
console.log(arr4)

// arr.entries() // 返回可迭代的键值对
 for(item of arr.entries()){
     console.log(item)
 }

 arr.values()
 arr.keys()

console.log('数组检验every',arr.every(item=> item<4))  // 数组每一项通过函数校验返回 true
console.log('数组校验some',arr.some(item=> item===2)) // 数组存在一项通过函数校验返回 true

// 数组遍历
arr.forEach((item,index,array)=>{})
for(item in arr){}
for(item of arr){}
for(let i =0;i<arr.length;i++){}

arr.filter(item=>item<3) //[1,2]  返回符合函数条件的数组项组成的数组
arr.map(item=> item*2) // [2,4,6] 返回新数组

let arr5 = [1,[2,3,[4,5]]]
 // 数组扁平化  返回新数组
console.log('数组扁平化', arr5.flat(Infinity)) // 查找层级 Infinity 全部展开
 
// reduce  对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值
let number= arr.reduce((account,current)=>{
      return account + current *2
},0)

console.log('累计器',0 + 1*2 + 2*2 + 3 *2,  number)

let n = arr.reduce((account,current)=>{
    return [...account,current*2]

},[])
console.log('累计器',n)

// arr.reduceRight()  从右到左遍历


arr.reverse() // [3,2,1]   改变原数组
console.log('数组反转',arr)

console.log('浅拷贝',arr.slice()) // [2,1]  浅拷贝 返回新数组


let sortArr= arr.sort((first,second)=>{
   return first- second
}) // 排序

console.log('排序',sortArr)
let arr6 = [3,4,5,6,7,8,9]
//splice(start,deleteNum,addItem) // start 开始操作位置  deleteNum 删除元素数量  addItem 添加元素数量
let spliceArr= arr6.splice(2,8,'a','b','c')
console.log(arr6)
console.log(spliceArr)