在 中,数组是强大的数据结构,允许我们存储和操作值的集合。 使用数组时,我们经常需要动态添加或删除元素。 添加比较容易,在本文中,我们先说四种常用的删除数组元素的方法:pop()、shift()和()。 我们讨论每种方法的定义及其区别,并提供代码片段来演示它们的用法。
image.png1,弹出()
pop() 方法用于从数组中删除最后一个元素并将其返回。 它通过将长度减 1 来修改原始数组。这是一个示例:
let fruits = ['apple', 'banana', 'orange'];
let removedFruit = fruits.pop();
console.log(removedFruit); // Output: 'orange'
console.log(fruits); // Output: ['apple', 'banana']
2.转移()
shift() 方法从数组中删除第一个元素并将所有其他元素向下移动一个索引。 它返回删除的元素并更新数组长度。 这是一个例子:
let colors = ['red', 'green', 'blue'];
let removedColor = colors.shift();
console.log(removedColor); // Output: 'red'
console.log(colors); // Output: ['green', 'blue']
shift可以理解为pop点补充。一个是提取tail,一个是提取head
3.
不是函数,它只是一个运算符,运算符可用于通过将元素的值设置为 来从数组中删除特定元素。 但是,它不会更新数组长度或重新索引剩余元素。 这是一个例子:
let numbers = [1, 2, 3, 4, 5];
delete numbers[2];
console.log(numbers); // Output: [1, 2, undefined, 4, 5]
console.log(numbers.length); // Output: 5
由于不更新数组长度,多次插入,个人认为很鸡肋,已经偏离了初衷。 要删除元素并重新索引数组,我建议使用 () 方法。
let numbers = [1, 2, 3, 4, 5];
numbers.splice(1,1);
console.log(numbers); // Output: [1, 3, 4, 5]
4.切片()
中的 slice() 方法用于提取数组的一部分并返回包含所选元素的新数组。 它有两个可选参数:开始和结束。 下面是一个演示 slice() 方法用法的例子:
let numbers = [1, 2, 3, 4, 5];
let slicedNumbers = numbers.slice(1, 4);
console.log(slicedNumbers); // Output: [2, 3, 4]
console.log(numbers); // Output: [1, 2, 3, 4, 5]
在上面的示例中, slice(1, 4) 调用从索引 1(含)到但不包括索引 4(不含)提取元素。 提取的元素 [2, 3, 4] 作为新数组返回,原始数组的元素保持不变。
您还可以将负索引与 slice() 方法一起使用,以从数组末尾提取元素。 例如:
let fruits = ['apple', 'banana', 'orange', 'mango', 'kiwi'];
let slicedFruits = fruits.slice(-3);
console.log(slicedFruits); // Output: ['orange', 'mango', 'kiwi']
在此示例中, slice(-3) 从数组中提取最后三个元素,结果为 ['', 'mango', 'kiwi'] 。
切片类似于函数,但主要区别在于:
如果需要改变原数组,或者向原数组添加元素,使用()。 **如果要在不修改原始数组的情况下从数组中提取元素的子集,请使用 slice()**。 它提供了根据索引选择元素的灵活性,并允许您从现有数组创建新数组。
总结
在数组中操作数组时,了解 pop() 、 shift() 、 、 slice 之间的区别是至关重要的。 pop() 方法删除最后一个元素,shift() 方法删除第一个元素,可以删除特定元素但留下一个空槽。 它会改变数组,slice在不改变数组的情况下提取元素。 我们根据具体要求选择合适的方法。 请记住始终测试和试验这些方法以完全掌握它们的行为。