在 JavaScript 中完全删除数组中的重复项
javascriptweb developmentobject oriented programming更新于 2025/9/25 23:40:17
我们需要编写一个函数,该函数接受一个数组并返回一个删除了所有重复值的新数组。
原始数组中出现多次的值在新数组中甚至不应该出现一次。
例如,如果输入是 −
const arr = [23,545,43,232,32,43,23,43];
输出应该是 −
const output = [545, 232, 32];
了解差异 −
Array.prototype.indexOf() →如果存在,则返回搜索字符串第一次出现的索引,否则返回 -1。
Array.prototype.lastIndexOf() → 如果存在,则返回搜索字符串最后一次出现的索引,否则返回 -1。
两种方法都是从左到右开始的。
如果第二个参数未定义,则两种方法都从 0 开始,如果第二个参数是数字,则其他方法从第二个参数开始。
所以这里的关键点是,如果在数组中,indexOf() 和 lastIndexOf() 方法指向同一个索引,我们可以确保它只存在一次,所以我们将在代码中使用这个发现。
该函数的完整代码将是 −
示例
const arr = [23,545,43,232,32,43,23,43];
const deleteDuplicate = (arr) => {
const output = arr.filter((item, index, array) => {
return array.indexOf(item) === array.lastIndexOf(item);
})
return output;
};
console.log(deleteDuplicate(arr));
输出
控制台中的输出将是 −
[ 545, 232, 32 ]
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

