1. ホーム
  2. ジャバスクリプト

[解決済み】配列で一意な値を取得する方法【重複している

2022-04-04 20:12:37

質問

<余談
この質問には、すでにここで回答があります :
クローズド 3ヶ月前 .

配列に含まれる一意な値のリストを取得するには?常に2番目の配列を使用しなければならないのでしょうか、それともJavaScriptでjavaのhashmapに似たものがあるのでしょうか?

を使う予定です。 ジャバスクリプト ジャクエリ だけです。追加のライブラリは使用できません。

どのように解決するのですか?

Rocketさんの回答に対するコメントでそのことについて述べたので、ライブラリを使用しない例を提供することにします。 これには、2つの新しいプロトタイプ関数が必要です。 containsunique

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の indexOf シムし、各要素の indexOf は-1に等しい。 ドキュメンテーション