介绍

在 JavaScript 中,我们经常需要操作数组,例如添加或删除元素。要删除一个或多个元素,我们使用Array.prototype.splice()或Array.prototype.slice()方法。除此之外,ES6中的Array.prototype.includes()方法和Array.prototype.**()方法也可以用于删除一个元素。

判断 Array.prototype.splice() 是否成功

Array.prototype.splice()方法被广泛使用于数组中删除一个或多个元素。如果删除元素成功,该方法将返回删除的元素以及其位置。否则,如果没有元素被删除,该方法将返回一个长度为0的数组。因此,我们可以基于这个特性来判断remove是否成功。以下是示例代码:

const arr = ["apple", "banana", "orange"];
const removed = arr.splice(1,1); // 从索引为1的位置删除一项
console.log(removed); // ["banana"]
console.log(arr); // ["apple", "orange"]
if (removed.length > 0) {
  console.log("删除成功");
} else {
  console.log("删除失败");
}

使用 Array.prototype.filter() 方法

Array.prototype.filter() 方法允许我们过滤数组中的元素,只保留符合特定条件的元素。当我们使用filter()方法时,所有符合条件的元素将会被保留下来,而不会修改原始数组。因此,我们可以对原数组应用过滤器,并用过滤完的结果判断删除操作是否成功。以下是示例代码:

const arr = ["apple", "banana", "orange"];
const removed = arr.filter(item => item !== "banana");
console.log(removed); // ["apple", "orange"]
console.log(arr); // ["apple", "banana", "orange"]
if (removed.length === arr.length - 1) {
  console.log("删除成功");
} else {
  console.log("删除失败");
}

使用 Set 对象判断是否成功

Set对象是ES6中新增的数据结构,它允许我们存储唯一值。当我们将一个数组放入Set对象时,Set对象会自动去重。因此,如果要删除一个元素,我们可以构建一个新的Set对象,并将需要保留的元素添加到其中。最终,我们可以将Set对象转换为数组,并检查其长度是否被减小。如果Set对象的长度比之前少一个,我们就可以判断删除是否成功。以下是示例代码:

const arr = ["apple", "banana", "orange"];
const set = new Set(arr);
set.delete("banana");
const removed = [...set];
console.log(removed); // ["apple", "orange"]
console.log(arr); // ["apple", "banana", "orange"]
if (removed.length === arr.length - 1) {
  console.log("删除成功");
} else {
  console.log("删除失败");
}