📌  相关文章
📜  如何在javascript中删除相同的字符串(1)

📅  最后修改于: 2023-12-03 15:38:33.275000             🧑  作者: Mango

如何在JavaScript中删除相同的字符串

在JavaScript中,如果我们需要从一个字符串数组中删除重复的字符串,该怎么做呢?本文将介绍3种方法。

方法1 - Set()

ES6标准引入了Set,它是一个类似于数组的数据结构,其中不允许存在重复的元素。

const arr = ["apple", "banana", "orange", "apple", "orange"];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // ["apple", "banana", "orange"]

我们可以使用Spread运算符(...)将Set生成的对象转换为一个新数组。这个方法简单并且易于理解,但是它只适用于现代浏览器,并且不保证元素的顺序。

方法2 - for循环和indexOf()

这个方法使用一个包含for循环和indexOf的算法,通过遍历原始数组并添加非重复元素到一个新的数组中实现去重。

const arr = ["apple", "banana", "orange", "apple", "orange"];
const uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
  if (uniqueArr.indexOf(arr[i]) === -1) {
    uniqueArr.push(arr[i]);
  }
}
console.log(uniqueArr); // ["apple", "banana", "orange"]

这个方法适用于所有浏览器,但是由于每次循环都会调用indexOf方法,所以对于大型的数组它可能会变得非常慢。

方法3 - filter()和indexOf()

这个方法使用filter()函数和indexOf()函数一起来获取一个新的数组,它可以快速去重一个非常大的数组。

const arr = ["apple", "banana", "orange", "apple", "orange"];
const uniqueArr = arr.filter((item, index) => {
  return arr.indexOf(item) === index;
});
console.log(uniqueArr); // ["apple", "banana", "orange"]

这个方法非常简洁和易于理解,它也适用于多数浏览器并且速度比第二种方法要快。

总结

以上三种方法都可以用来删除一个数组中的重复元素,其中Set方法是ES6标准引入的,它非常易于理解和使用,但是只适用于现代浏览器。另外两种方法都是基于遍历数组并一次进行比较的,它们可能会比Set方法慢,但是它们适用于多数浏览器并且可以处理大型数组。