【问题标题】:How to remove several identical items from an array [duplicate]如何从数组中删除几个相同的项目[重复]
【发布时间】:2016-09-05 20:14:48
【问题描述】:

有没有一种方法可以像这样从 JavaScript 数组中删除几个相同/重复的项目:

var array = [55, 65, 55, 65, 55, 65, 55, 65, 55, 65];

例如,对于这个数组,我试图删除 5565 的所有重复项,以便只剩下 [55, 65]

我尝试过使用splice(),但这只会删除位置编号,我需要一些东西来删除所有具有相同值的项目。

【问题讨论】:

标签: javascript arrays


【解决方案1】:

您可以过滤数组并使用哈希表进行查找。

var array = [55, 65, 55, 65, 55, 65, 55, 65, 55, 65, true, 'true'];

array = array.filter(function (a) {
    var key = typeof a + '|' + a;
    if (!this[key]) {
        this[key] = true;
        return true;
    }
}, Object.create(null));

document.write('<pre>' + JSON.stringify(array, 0, 4) + '</pre>');

【讨论】:

  • 这会将true"true"视为重复,以及1"1"等。
  • @torazaburo,请参阅编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-15
  • 1970-01-01
  • 2017-06-21
  • 2021-10-19
相关资源
最近更新 更多