javascript - 使用 forEach 删除数组中的重复项

标签 javascript arrays

美好的一天,我正在尝试使用 forEach 从数组中删除重复元素环形。但此时我遇到了一些错误。下面是我的代码

function removeDup(arr) {
    let result = arr.forEach((item, index) => { if (index > 1) item.shift() });
    return result;
}

我什至不确定此代码是否可以用于删除重复项,因为当我在浏览器中运行它时console我收到此错误

if (index > 1) item.shift(); ^

TypeError: item.push is not a function

首先,我该如何修复这个错误,其次这个代码是否可以删除重复项?

最佳答案

你可以尝试:

function removeDup(arr) {
  let result = []
  arr.forEach((item, index) => { if (arr.indexOf(item) == index) result.push(item) });
  return result;
}

说明:

首先用空数组初始化结果。然后遍历传递的数组,检查索引是否是其第一次出现的项目。插入结果数组。返回结果数组。

替代解决方案:

function removeDup(arr) {
  let result = []
  arr.forEach((item, index) => { if (result.indexOf(item) === -1) result.push(item) });
  return result;
}

说明:

您可以通过检查该元素是否已被插入结果数组来避免检查索引是否第一次出现。

关于javascript - 使用 forEach 删除数组中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54757902/

相关文章:

c - 如何使用文件输入对数组进行排序?

java - 这个方法在做什么? (数组和随机数)

javascript - 通过调用 Web 服务从 JavaScript 上传文件

java - 是否可以将 Spring 模型对象作为 Spring 形式的值?

javascript - 在 jquery ajax 中将函数名称作为字符串传递

arrays - 将二维数组转换为VBA中的列表

javascript - 展平 N 维 JavaScript 数组

javascript - 响应式 JavaScript

javascript - 使用 Javascript 根据另一个选择的值更改一个选择

javascript - 如果第二个数组匹配,则对第一个数组中的数字求和