首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不使用Set的情况下删除数组中的重复项?

如何在不使用Set的情况下删除数组中的重复项?
EN

Stack Overflow用户
提问于 2021-02-24 17:56:36
回答 3查看 57关注 0票数 0

如何在不使用Set的情况下删除数组中的所有重复项(因为这样会打乱顺序)

为什么我的带有拼接方法的循环不能工作?

代码语言:javascript
运行
复制
let result = [
  'j', 'a', 'a', 'v',
  'a', 'a', 's', 'c',
  'r', 'i', 'p', 't'
  ]
;


for (let i = 0; i < result.length; i++) {
        if (result[i] === result[i + 1]){
            result.splice(result.indexOf(result[i]), 1);
        }
}

console.log(result)  //[  "j", "v", "a",  "a",  "s",  "c", "r", "i",  "p",  "t" ]

代码语言:javascript
运行
复制
expected output - > [  "j", "a",  "v",  "a",  "s",  "c", "r", "i",  "p",  "t" ]
EN

Stack Overflow用户

回答已采纳

发布于 2021-02-24 18:10:09

您的方法在您的条件下失败:

代码语言:javascript
运行
复制
if (result[i] === result[i + 1])

因为您只检查下一项是否与当前项相同,而不是针对整个数组。

要解决此问题,您可以创建一个新数组,并只将尚未存在的值推入此数组,从而消除重复项。

代码语言:javascript
运行
复制
const result2 = [];
for (let i = 0; i < result.length; i += 1) {
    if (result2.indexOf(result[i])>-1) {
    continue;
  }
  result2.push(result[i]);
}
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66348496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档