小编典典

如何获取数组中的唯一值

all

如何获取数组中唯一值的列表?我总是必须使用第二个数组还是在 JavaScript 中有类似于 java 的 hashmap 的东西?

我将只使用 JavaScriptjQuery 。不能使用其他库。


阅读 63

收藏
2022-05-22

共1个答案

小编典典

由于我在@Rocket 答案的评论中继续讨论它,我不妨提供一个不使用库的示例。这需要两个新的原型函数,contains并且unique

Array.prototype.contains = function(v) {

  for (var i = 0; i < this.length; i++) {

    if (this[i] === v) return true;

  }

  return false;

};



Array.prototype.unique = function() {

  var arr = [];

  for (var i = 0; i < this.length; i++) {

    if (!arr.contains(this[i])) {

      arr.push(this[i]);

    }

  }

  return arr;

}



var duplicates = [1, 3, 4, 2, 1, 2, 3, 8];

var uniques = duplicates.unique(); // result = [1,3,4,2,8]



console.log(uniques);

为了获得更高的可靠性,您可以替换contains为 MDN 的indexOfshim 并检查每个元素indexOf是否等于
-1:文档

2022-05-22