📜  javascript 删除键 - Javascript (1)

📅  最后修改于: 2023-12-03 14:42:31.780000             🧑  作者: Mango

JavaScript 删除键

当需要删除掉数组、对象、字符串等数据结构的某个元素时,JavaScript 提供了多种方法。本文将介绍这些方法,以及如何正确地选择应该使用哪一种方法。

删除数组元素
通过 delete 操作符删除

JavaScript 中,可以使用 delete 操作符删除一个数组元素。例如:

const arr = [1, 2, 3];
delete arr[1];
console.log(arr); // 输出 [1, undefined, 3]

使用 delete 操作符删除数组元素时,被删除元素的位置会变成一个空洞(hole),即元素值为 undefined

然而,我们不建议使用 delete 操作符来删除数组元素,因为它会破坏数组的连续性。

使用 Array.prototype.splice 方法删除

官方推荐方法是使用 splice() 方法来删除。

语法:

array.splice(start, deleteCount, item1, item2, ...)
  • start:从该位置开始删除元素。如果该参数为负数,则从数组结尾开始算起的位置。
  • deleteCount:将要被删除的元素个数。如果该参数为 0,则不会删除任何元素。
  • item1, item2, ...:可选,要添加进数组的元素。从 start 所指的位置开始。

例如,我们要删除下标为 1 的元素:

const arr = [1, 2, 3];
arr.splice(1, 1);
console.log(arr); // 输出 [1, 3]

如果我们需要删除多个元素,可以这样做:

const arr = [1, 2, 3, 4, 5];
arr.splice(1, 3);
console.log(arr); // 输出 [1, 5]

如果我们希望删除元素后返回被删除的元素,可以这样做:

const arr = [1, 2, 3];
const deleted = arr.splice(1, 1);
console.log(arr); // 输出 [1, 3]
console.log(deleted); // 输出 [2]
删除对象属性
使用 delete 操作符删除

与删除数组元素类似,可以使用 delete 操作符删除对象属性。

语法:

delete object.property

例如:

const obj = { a: 1, b: 2, c: 3 };
delete obj.b;
console.log(obj); // 输出 {a: 1, c: 3}

但同样,我们不建议使用 delete 操作符删除对象属性,因为这样会降低对象的性能。

使用 Object.assign 方法删除

Object.assign() 方法可以用来合并两个或多个对象。它也可以用来删除对象属性。

语法:

Object.assign(target, ...sources)
  • target:目标对象
  • ...sources:源对象

例如,我们要删除属性 b

const obj = { a: 1, b: 2, c: 3 };
Object.assign(obj, { b: undefined });
console.log(obj); // 输出 {a: 1, b: undefined, c: 3}
删除字符串中的字符
使用 slice() 方法删除

我们可以使用 slice() 方法切割字符串,来删除其中的某些字符。

语法:

string.slice(startIndex, endIndex)
  • startIndex:起始下标。如果该参数为负数,则从字符串结尾开始算起。
  • endIndex:结束下标。如果该参数为负数,则从字符串结尾开始算起。如果为空,则表示删除起始下标之后的所有字符。

例如,我们要删除字符串中下标为 1 的字符:

const str = "hello";
const deleted = str.slice(0, 1) + str.slice(2);
console.log(deleted); // 输出 "hllo"
结语

以上方法只是删除数据结构中的一些基本方法,还有其他更加高效的删除数据的方法,例如使用 filter() 方法删除数组元素,使用 reassign() 方法删除对象属性等,程序员可以根据自己的实际需求灵活选择方法。