Javascript:查找并删除*所有*重复的项目

标签 javascript jquery arrays

我有一个包含以下元素的数组:

A
B
B
C
B

如果某个项目出现多次,我必须删除所有出现的项目。因此,它会是这样的:

A
C

我发现了很多关于如何删除其他重复元素但仍然保留“原始”元素的示例,因此我找不到更接近它的东西,我真的迷失了。

我考虑过在对象中保存以下内容: 1. 元素的值(value); 2.出现了多少次; 3.所有出场的位置。

如果出现的次数大于 1,我将删除数组中以下所有位置。这是不是一个好主意?最好的方法是什么?

非常感谢!

最佳答案

您可以使用 filter() 执行此操作,并通过检查 indexOf 是否等于 lastIndexOf 来仅返回唯一元素

var ar = ['A', 'B', 'B', 'C', 'B'];
var result = ar.filter(function(e) {
  return ar.indexOf(e) == ar.lastIndexOf(e);
})

console.log(result)

关于Javascript:查找并删除*所有*重复的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40980806/

相关文章:

c - C 如何保证等于数组值的内存地址可用?

php - 压缩包含 php、javascript、html 和 css 的网页

javascript - 使用 javascript 绘制页眉/页脚包括和 document.write

Javascript:如何从谷歌翻译页面的字段中获取翻译后的单词?

jquery - 启用/禁用多个 Bootstrap 按钮的最佳方法(Jquery)

Javascript:按字符串数组过滤对象数组

javascript - d3.path 仅绘制特征集合的第一个特征

javascript - 插入 DOM 的 jQuery 不跨浏览器兼容

javascript - 模态焦点在 div 元素上

arrays - Swift 2 中通过索引比较数组