2017-03-12 17 views
0

を存在するかどうかを確認します。jQueryの - 配列内のオブジェクトは、私はそうのような配列にオブジェクトを追加してい

fontSizeArray.push({element: $(y).prop("tagName").toLowerCase(), orginalSize:$(y).css("font-size"), size:$(y).css("font-size")}); 

このコードをループ内でいくつかの項目がありますので、私は何をしようとしていますが、重複を排除しています同じタグ名と同じフォントサイズ

私は配列で使用しようとしていますが、機能していないと、重複は残っています。

if($.inArray({element: $(y).prop("tagName").toLowerCase(), orginalSize:$(y).css("font-size"), size:$(y).css("font-size")}, fontSizeArray) == -1) 
       { 
         fontSizeArray.push({element: $(y).prop("tagName").toLowerCase(), orginalSize:$(y).css("font-size"), size:$(y).css("font-size")}); 
       } 

私は間違っていますか?あなたは

searchArray = $.grep(fontSizeArray, function(n) { 
    return n.element == $(y).prop("tagName").toLowerCase() && n.orginalSize == $(y).css("font-size") && n.size == $(y).css("font-size"); 
}); 

if(searchArray.length == 0){ 
    console.log("Not find"); 
}else{ 
    console.log("find"); 
} 

.grepを.grep使用することができる配列でオブジェクトを検索し

+0

をそれを見ることができ、この記事をチェックしてくださいhttp://stackoverflow.com/questions/18867599/jquery-inarray-how-to-use-it-right私はこの記事がどのように役立つかを知らない – Jules

+0

。 – user979331

+0

この記事はすみませんでした。http://stackoverflow.com/questions/19111707/why-jquery-inarray-doesnt-work-on-array-of-objects – Jules

答えて

1

は、フィルタ機能を満たす配列の要素を検索します。元の配列は影響を受けず、戻り値と配列になります。

すべての属性を使用してオブジェクトを検索しますが、tagNameだけを使用して重複プッシュを回避する要素を見つけることができます。

あなたはここにhttps://jsfiddle.net/egfg3dmc/3/

関連する問題