跳到主要内容

添加和删除数组元素

添加数组元素

给新索引赋值,添加数组元素
let a = [] // 创建一个空数组
a[0] = 'zero' // 添加一个元素
a[1] = 'one'

push() 尾部追加

使用push()方法在数组尾部添加一个或多个元素
let a = [] // 创建一个空数组
a.push('zero') // 在尾部添加一个值,a=["zero"]
a.push('one', 'two') // 再在尾部追加两个值,a = ["zero","one","two"]
  • 向数组 a 中推入一个值等同于把这个值赋给a[a.length]
  • 要在开头插入可以使用 unshift()方法:这个方法将已有数组元素移动到更高的索引位。
  • 与 push()执行相反操作的是 pop()方法:它是删除数组最后一个元素并返回该元素,同时导致数组长度减 1。
  • 类似的 shift()方法:它删除并返回数组的第一个元素,让数组长度减 1,并将所有元素移动到低一位的索引。

delete 删除数组元素

使用delete操作符删除数组元素,删除元素不影响length数组长度
let a = [1, 2, 3]
delete a[2] // 线程索引2没有元素
2 in a // =>false:数组索引2没有定义
a.length // => 3:删除元素不影响数组长度。
  • 删除数组元素类似于(但不完全等同于)给该元素赋 undefined 值。

splice() 添加,删除或替换

splice() 方法是 JavaScript 中 Array 对象的一个原生方法,用于直接在数组中添加、删除或替换元素。它是对数组内容进行操作的非常灵活的方法。

语法:

array.splice(start, deleteCount[, item1, item2, ...])
  • start: 必需,一个整数,规定从何处开始插入/移除元素。如果为负值,则它将被当作相对于数组结尾的偏移量来处理(即 -1 表示最后一个元素)。

  • deleteCount: 可选,一个整数,表示要删除的元素数量。如果省略或者设置为 0,则不删除任何元素。如果这个数值大于 start 之后的元素个数,则会移除从 start 到数组末尾的所有元素。

  • item1, item2, ...: 可选,需要插入数组的新元素。这些元素将会从 start 位置开始插入到数组中。

功能说明:

  • 删除元素:splice 会根据提供的 deleteCount 参数从数组指定的位置开始删除相应数量的元素,并返回一个包含已删除元素的新数组。

  • 插入元素:如果提供了额外的参数(即新元素),splice 会在指定的位置开始删除指定数量的元素后,将这些新元素插入到数组中。

  • 替换元素:同时提供 deleteCount 和新元素时,splice 先删除指定数量的元素,然后在其位置上插入新的元素,实现替换效果。

示例:

let arr = [1, 2, 3, 4, 5]

// 删除操作
arr.splice(1, 2) // 从索引 1 开始删除 2 个元素,现在 arr 是 [1, 4, 5]
console.log(arr) // 输出:[1, 4, 5]

// 返回被删除的元素
let removedItems = arr.splice(1, 1) // 从索引 1 开始删除 1 个元素
console.log(removedItems) // 输出:[4]

// 插入操作
arr.splice(1, 0, 'a', 'b') // 在索引 1 处插入 'a' 和 'b'
console.log(arr) // 输出:[1, "a", "b", 5]

// 替换操作
arr.splice(1, 2, 'x', 'y') // 删除索引 1 和 2 的元素并插入 'x' 和 'y'
console.log(arr) // 输出:[1, "x", "y", 5]

通过以上示例,可以看出 splice() 方法可以用来执行复杂的数组修改操作,包括但不限于插入、删除和替换数组中的元素。