Javascript 数组的常用方法

2021-06-21  本文已影响0人  Draven_cxy

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

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()

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()

传入三个参数,分别是开始位置(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()

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' }

排序方法

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

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 ]

转换方法

常见的转换方法有:

const values = ['one', 'tow', 'three']
const ret = values.join(',')
console.log(ret) // one,tow,three
上一篇下一篇

猜你喜欢

热点阅读