ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript が array_javascript から重複要素を削除するヒント

JavaScript が array_javascript から重複要素を削除するヒント

WBOY
WBOYオリジナル
2016-05-16 18:28:17787ブラウズ

Firebug のコンソールを開いて、30 秒考えて 30 秒書いた結果は次のとおりです: (x はターゲット配列、y は重複要素を削除した後の結果)

コードをコピー コードは次のとおりです:

var x=[1,1,3,4,5,3];
var y= [];
var tArray=function(i,arr){
var yap=false;
for(var j=0;jif(arr[ j]==i ){yap=true;break;};
if(!yap) arr.push(i)
for(var t=0;t< ;x.length; ){
tArray(x[t],y);
alert(y.length);

答えは一意ではなく、標準的な答えも存在しないため、上記のコードは正しいか間違っているかがわかります。配列が複雑なオブジェクトの配列の場合はどうなるでしょうか?配列に複数の空のオブジェクト {} が含まれている場合はどうなるでしょうか? JS には特殊な現象やバグのある現象がたくさんあることを知っておく必要があります。何が起こっているのかを確認するには、alert({}=={}) を使用してください...

注: 標準的な答えを持っている人がいたら、投稿してください。みんなへのコメント欄で学びましょう。
質問作成者自体はこれらの問題を考慮しません。

問題を解決する方法を学ぶのではなく、実際の仕事で問題に遭遇したときに、効率的に問題を解決できる能力が真の価値です。

その他注意すべき点:

注意すべき問題があります
arr[j]==i 配列のときの等価判定を指しているようです要素は数値型です ...
しかし、多くの場合、異なる型に対して同等性の判断を下さなければならない場合があります... これは実際のアプリケーションで考慮されるべき問題です

1!=new Number( 1)
null ==未定義

0=="0" など

単純な == や === は明らかに不適切です。
独立して実装できる 等価性判定を行うのはequalsメソッド… 要件に応じてルールを設定する

ここで挙げた例はnumber型の配列であり、その目的は「何をするか」に対する態度を表現することです。インタビュー」。実際のアプリケーションでは、実際のニーズに基づいて検討する必要があります。実際の仕事で必要な場合、または私が JS 学術研究者でない限り、私は独自に均等メソッドを実装しません。外国の開発者は、「機能する可能性のある最も単純なことを行う」という信条に従っていることがよくあります。これは、大まかに言うと、「過度に設計しないでください。適合性が最優先です。」という意味です。過去数年間の私の仕事の経験は、この真実を裏付けることがよくあります。あなたがどう思っているかわかりません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。