新手学鸿蒙,有这些数组方法就够用啦!!!!!

664 阅读3分钟

数组方法

  1. join

    将简单类型数组 转变为字符串

    const str = [1, 2, 3]
    const newStr = str.join("")
    console.log("", newStr)
    
  2. forEach

    对数组进行遍历,类似于for循环,但不能被break打断,并且没有返回值

    const num = [1, 2, 3, 4, 5]
    num.forEach(item => console.log("", item * 2))
    

  3. map

    对数组进行遍历,返回新数组

    const num = [1, 2, 3, 4, 5]
    const newNum = num.map(item => item * 2)
    console.log("", newNum)
    
  4. filter过滤

对数组进行遍历,返回满足条件的元素,有返回值

const num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const newNum = num.filter(v => v > 2)
console.log("", newNum)//3,4,5,6,7,8,9,10
  1. every

    数组中的每个元素都要满足条件,如果时返回true

    返回了false后就不再遍历

    但是如果是空数组,不会遍历,直接返回true

    const num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    const newNum = num.every(v => v > 0)
    console.log("", newNum)//true
    
  2. some

    数组中只要一个元素都要满足条件,如果时返回true

    返回了true后就不再遍历

    但是如果是空数组,不会遍历,直接返回false

    const num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    const newNum = num.some(v => v > 5)
    const newNum1 = num.some(v => v > 10)
    
    console.log("", newNum) //true
    console.log("", newNum1) //false
    
  3. find

    寻找满足条件的第一个元素

    找不到返回undefined

    const num = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    const num1 = num.find(v => v == 3)
    console.log("", num1)//3
    
  4. findIndex

    寻找满足条件的第一个元素的下标

    找不到返回-1

    const test = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
    const newTest = test.findIndex(v => v == 3)
    console.log("", newTest)//2
    
  5. include

    用来判断简单类型数组是否包含某个元素,返回true或false

    let arr: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    const result = arr.includes(1)
    console.log("", result) //true
    console.log("", arr.includes(11))//false
    
  6. indexOf(包含)

用来判断简单数据类型数组,从左往右开始寻找,返回第一个包含元素的下标,失败返回-1

let arr: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const result = arr.indexOf(2)
console.log("", result)//下标1
  1. lastIndexOf

    从右往左寻找

  2. sort

    对数组进行排序

    let arr: number[] = [11, 22, 33, 432, 34, 123, 234234]
    const result = arr.sort((a, b) => {
      return a - b
    })
    console.log("", result)
    //retrun 大于0  a排在b后面
    //retrun 小于0  a在b前面
    //retrun 0 不变
    
  3. reduce

    写法一:

    //写法一  用于简单数据类型
    const list = [1, 2, 3, 4, 5]
    const arr = list.reduce((a, b) => a + b)
    console.log("", arr)
    

    写法二:

    //写法二  用于复杂数据类型
    interface Food {
      name: string
      price: number
    }
    
    const food: Food[] = [
      { name: "1", price: 10 },
      { name: "2", price: 20 },
      { name: "3", price: 30 }
    ]
    const arr = food.reduce((a: number, b: Food) => {
      return a + b.price
    }, 0)
    console.log("", arr)
    

    总结

    数组方法作用细节
    join数组转成字符串['a','b'].join('-') => "a-b"
    includes判断是否包含某个元素判断简单类型的数组,包含 返回 true
    indexOf寻找元素下标判断简单类型的数组,包含 返回 元素下标,不包含 返回 -1
    lastIndexOf寻找元素下标类似上面,但是找元素的方向 从右往左
    forEach遍历不同于for循环,不能break
    map映射 返回相同数组长度的新数组[1,2,3].map(v=>v+1) [2,3,4]
    filter过滤如果你回调函数中返回true,表示你保留这个元素
    every要求每一个元素都达到条件 返回true空数组.every() 返回true | ,如果回调函数返回了false,不再遍历
    some要求一个元素达到条件返回true = 返回true空数组.some() 返回false ,如果回调函数返回了true,不再遍历
    find寻找满足条件的一个元素找到返回元素本身,找不到 返回undefined
    findIndex寻找满足条件的一个元素的下标找到了返回元素下标,找不到返回-1
    sort排序.sort((a,b)=>a-b)
    reduce累加 => 万金油常见累加、求和,不限于。。。。