美文网首页
Javascript 数组的常用方法

Javascript 数组的常用方法

作者: Draven_cxy | 来源:发表于2021-06-21 10:08 被阅读0次

    数组的常用方法基本上可以归纳为:增、删、改、查,需要注意的是哪些方法会对原数组会产生影响,哪些不会

    • push()
    • unshift()
    • splice()
    • concat()

    push()

    push() 方法接收任意的参数,并将它们添加到数组的末尾,返回数组的最新长度

    const arr = []
    const ret = arr.push('item1', 'item2')
    console.log(ret) // 2
    console.log(arr) // ['item1', 'item2']
    

    unshfit()

    unshift()方法接收任意的参数,并将它们添加的数组的首位,返回数组的最新长度

    const arr = ['item1', 'item2']
    const ret = arr.unshift('itemA', 'itemB')
    console.log(ret) // 4
    console.log(arr) // ['itemA', 'itemB','item1', 'item2']
    

    splice()

    传入三个参数,分别是开始位置(startIndex),要删除的元素数量(deleteNum)、插入的元素。返回值为空数组

    const colors = ['red', 'blue', 'yellow']
    const ret = colors.splice(1, 0, 'green', 'origin')
    console.log(ret) // []
    console.log(colors) // [ 'red', 'green', 'origin', 'blue', 'yellow' ]
    

    concat()

    首先它会先创建一个当前数组的副本, 然后把它的参数添加到副本的末尾,最后返回这个新构建的数组,不会影响原数据

    const colors = ['red', 'yellow', 'blue']
    const colorsNew = colors.concat('black', ['origin', 'green', ['greenyellow']])
    console.log(colors) // [ 'red', 'yellow', 'blue' ]
    console.log(colorsNew) // [ 'red', 'yellow', 'blue', 'black', 'origin', 'green', ['greenyellow']]
    

    • pop()
    • shift()
    • splice()
    • slice()

    pop()

    pop()方法用于删除数组的最后一个元素,同时减少数组的length值,返回被删除的元素

    const colors = ['red', 'blue', 'yellow']
    const color = color.pop()
    console.log(colors)  // [ 'red', 'blue' ]
    console.log(color)  // yellow
    

    shift()

    shift()方法用于删除数组的第一个元素,同时减少数组的length值,返回被删除的元素

    const colors = ['red', 'blue', 'yellow']
    const color = color.pop()
    console.log(colors)  // [ 'blue', 'yellow' ]
    console.log(color)  // red
    

    splice()

    splice传入两个参数,分别是开始位置,删除元素的数量,返回被删除元素的数组

    const colors = ['red', 'blue', 'yellow']
    const color = colors.splice(0,2)
    console.log(colors); // [ 'yellow' ]
    console.log(color); // [ 'red', 'blue' ]
    

    slice()

    slice() 创建一个包含原有数据的新数组,接收两个参数,分别是开始位置和结束位置,不会影响原有数组

    const colors = ['red', 'blue', 'yellow', 'green', 'black', 'white']
    const colors1 = colors.slice(1);
    const colors2 = colors.slice(1, 4);
    console.log(colors); // [ 'red', 'blue', 'yellow', 'green', 'black', 'white' ]
    console.log(colors1); // [ 'blue', 'yellow', 'green', 'black', 'white' ]
    console.log(colors2); // [ 'blue', 'yellow', 'green' ]
    

    • splice()

    splice()

    传入三个参数,分别是开始位置(startIndex),要删除的元素数量(deleteNum)、插入的元素。返回值为空数组

    const colors = ['red', 'blue', 'yellow']
    const ret = colors.splice(1, 0, 'green', 'origin')
    console.log(ret) // []
    console.log(colors) // [ 'red', 'green', 'origin', 'blue', 'yellow' ]
    

    • indexOf()
    • includes()
    • find()

    indexOf()

    indexOf() 返回查找元素在数组中的位置,不在返回-1

    const nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    const index = nums.indexOf(3)
    const notFind = nums.indexOf(9)
    console.log(index) // 3
    console.log(notFind) // -1
    

    includes()

    返回查找的元素是否存在数组中,存在返回Boolean

    const nums = [0, 1, 2, 3, 4, 5, 6, 7, 8]
    const index = nums.includes(3)
    const notFind = nums.includes(9)
    console.log(index) // true
    console.log(notFind) // false
    

    find 返回第一个匹配的元素

    const peopels = [
      {
        age: 22,
        name: 'Nick',
      },
      {
        age: 23,
        name: 'Bob'
      },
      {
        age:21,
        name: 'Tom'
      }
    ]
    const ret = peopels.find((element, index, array) => element.age < 25)
    console.log(ret);  // { age: 22, name: 'Nick' }
    

    排序方法

    数组有两种方法对数组重新排序:

    • reverse()
    • sort()
      reverse()顾名思义,将数组元素反向排列
    const val = [1, 3, 2, 4, 9, 6]
    val.reverse()
    console.log(val) // [ 6, 9, 4, 2, 3, 1 ]
    

    sort()接收一个比较函数,用于判断哪个元素应该排在前面

    function compare(v1, v2) {
      if(v1 < v2) {
        return -1
      } else if(v1 > v2) {
        return 1
      } else {
        return 0
      }
    }
    const values = [1, 3, 2, 4, 9, 6]
    values.sort(compare);
    console.log(values); // [ 1, 2, 3, 4, 6, 9 ]
    

    转换方法

    常见的转换方法有:

    • join()
      join 方法接收一个参数,即字符串分隔符,返回包含所有项的字符串
    const values = ['one', 'tow', 'three']
    const ret = values.join(',')
    console.log(ret) // one,tow,three
    

    相关文章

      网友评论

          本文标题:Javascript 数组的常用方法

          本文链接:https://www.haomeiwen.com/subject/vfmcyltx.html