ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 配列の重複排除に推奨される 2 つの方法_JavaScript スキル

JavaScript 配列の重複排除に推奨される 2 つの方法_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 15:06:361417ブラウズ

1. 配列の重複排除

配列型には重複を削除するメソッドがありません。配列から重複した要素を削除したい場合は、自分で方法を見つける必要があります。

方法 1:indexOf メソッドを使用します。

var aa=[1,3,5,4,3,3,1,4]
function arr(arr) {
  var result=[]
  for(var i=0; i<arr.length; i++){
    if(result.indexOf(arr[i])==-1){
      result.push(arr[i])
    }
  }
  console.log(result)
}      
arr(aa)

方法 2:

function unique(arr) {
  var result = [], isRepeated;
  for (var i = 0, len = arr.length; i < len; i++) {
    isRepeated = false;
    for (var j = 0, len = result.length; j < len; j++) {
      if (arr[i] == result[j]) {  
        isRepeated = true;
        break;
      }
    }
    if (!isRepeated) {
      result.push(arr[i]);
    }
  }
  return result;
}

方法 2、 一般的な考え方は、転送プロセス中に、配列要素が 1 つずつ別の配列に転送されるかどうかを確認し、重複している場合は、直接捨ててください。ネストされたループからわかるように、この方法は非常に非効率です。ハッシュテーブル構造を使用して既存の要素を記録できるため、内部ループを回避できます。偶然ですが、JavaScript でのハッシュテーブルの実装は非常に簡単です。改善点は次のとおりです。

function unique(arr) {
  var result = [], hash = {};
  for (var i = 0, elem; (elem = arr[i]) != null; i++) {
    if (!hash[elem]) {
      result.push(elem);
      hash[elem] = true;
    }
  }
  return result;
}

JavaScript 配列の重複を排除するための上記の 2 つの推奨方法はすべてエディターによって共有された内容であり、参考にしていただければ幸いです。また、Script Home をサポートしていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。