ホームページ > ウェブフロントエンド > jsチュートリアル > js は array_javascript スキルから重複を巧みに削除します

js は array_javascript スキルから重複を巧みに削除します

WBOY
リリース: 2016-05-16 18:35:53
オリジナル
851 人が閲覧しました

YUI のソースコードを時々見ると、必ず何かが得られます。

1. YUI のソースコード

コードをコピーします。 🎜> コードは次のとおりです。
var toObject = function(a) {
var o =
for (var i=0, j=a.length; io[a[i]] = true; >}
return o;
};
var key = function(o) {
var a=[], i;
for (i in o) {
if ( o.hasOwnProperty(i)) { // ここでの YUI ソース コードは lang.hasOwnProperty(o, i)
a.push(i);
}
return a; 🎜>};
var uniq = function(a) {
return key(toObject(a))
};


注: 記述の便宜上、各メソッドの前のクラス名は省略しています。 YUI は自分で確認できます。 ソースコードは 2.7.0b と 2.8.0r4 の両方が利用可能です (この部分のコードは同じです)。

2.このメソッド
1. まず、ターゲット配列の値をキーとしてオブジェクトを生成します。このステップが最も重要です。オブジェクト内でキーを繰り返すことができないため、これにより重複する値が巧みに除外されます。
2. 生成されたオブジェクトをトラバースし、これらのキーを取り出して配列に配置します。これで完了です。(簡単、たったの 2 ステップ)

3. このメソッドの特徴>1. このメソッドの場合、配列内に項目がいくつあっても、走査されるのは 2 回だけであり、パフォーマンス上の利点は明らかです (以前のやり方を思い出してください。配列項目を 1 つずつ比較すると、パフォーマンスの違いが大きくなる可能性があります)。

2. テスト後、このメソッドは配列項目が文字列と数値である 1 次元配列にのみ適用できます (多次元配列で重複を除外するのはあまりにも信頼性が低いと思います)。

その他の方法は前回の記事を参照してください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート