JS基础之数组

73 阅读2分钟
1、创建数组
    // 字面量创建
    const arr = [1,2,3] 
    // Array()构造函数
    const arr = new Array(1,2,3)
2、数组方法
1)增
    arr[3] = 4
    arr.push() // 尾部添加
    arr.unshift() // 首部添加
    arr.splice(2,0,4)
    
(2)删
    arr.pop() // 尾部删除
    arr.shift() // 头部删除
    arr.splice(2,1) //splice(开始索引,删除几个,添加的元素) 改变原数组3)改
    arr[2] = 54)查 arr.slice(开始索引,结束索引) 返回新数组
   arr[index]
   arr.slice(1,2) // 截取 start <= item < end5)find 返回满足条件的第一个元素
    const arr = [1,2,3,4,5,6,7,8,9]
    const findEle = arr.find((ele, index, array) => ele > 5)
    if(findEle !== undefined){
        console.log(findEle) // 6
    }
    
(6)findIndex 返回满足条件的第一个元素的索引值
    const arr = [1,2,3,4,5,6,7,8,9]
    const findIndex = arr.findIndex((ele, index, array) => ele > 5)
    if(findEle !== undefined){
        console.log(findIndex) // 5
    }
    
(7)forEach 遍历数组所有元素 执行次数为 数组.lengthconst arr = [1,2,3,4,5,6,7,8,9]
    arr.forEach((ele, index, array) => {
         console.log(ele) // 1 2 3 4 5 6 7 8 9
    })
    
(8)map 遍历数组所有元素 并返回新元素和新数组 执行次数为 数组.lengthconst arr = [1,2,3,4,5,6,7,8,9]
    const newArr = arr.map((ele, index, array) => ele * 2)
    console.log(newArr) // [2, 4, 6, 8, 10, 12, 14, 16, 18]9)filter 过滤符合要求的    执行次数为 数组.lengthconst arr = [1,2,3,4,5,6,7,8,9]
    const newArr = arr.filter((ele, index, array) => {
           // 根据 true 返回当前元素
            return ele % 2 === 0
     })
    console.log(newArr) // [2,4,6,8]
    
  以下为优化方法(出现条件,会结束循环):
  循环次数 < 数组.length10)some(是否有一个满足) 全都false返回false,一个true结束循环返回true
    const arr = [1,2,3,4,5,6,7,8,9]
    const isOK = arr.some((ele, index, array) => {
            return typeof ele === 'number'
    })
    console.log(isOK) // true11)every(是否全部满足) 全都true返回true,一个false结束循环并返回false
    const arr = [1,2,3,4,5,6,7,8,9]
    const isOK = arr.some((ele, index, array) => {
            return typeof ele !== 'number'
    })
    console.log(isOK) // false12)reduce 将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
reduce(function(previousValue, currentValue, currentIndex, array) {}, initialValue)  

参数:
previousValue:上一次调用回调函数的返回值,若有initialValue,则值为initialValue,没有即为arr[0]
currentValue:数组中正在处理的元素,若有initialValue,其值为arr[0],否则其值为arr[1] currentIndex:数组中正在处理的元素的索引,若有initialValue,其索引,否则其索引为1
array:用于遍历的数组
initialValue:作为第一次调用 回调函数时参数previousValue的值

    求和案例:使用上次返回的结果与每个元素计算
    const arr = [1,2,3,4,5,6,7,8,9]
    const sum = arr.reduce((sum,ele)=>{
            return sum + ele
    },0)
    console.log(sum) // 45