2013-07-24 3 views
5

重複するタイトルを含むオブジェクト配列をフィルタリングする必要がありますが、その説明は一意です。例えば重複するタイトルと一意の説明を持つオブジェクト配列をフィルタリングしますか?

[ 
    { 
     "Title": "New York", 
     "Description": "A healthy and modernized transit system" 
    }, 
    { 
     "Title": "New York", 
     "Description": "changed transit system" 
    }, 
    { 
     "Title": "New York", 
     "Description": "xyz" 
    }, 
    { 
     "Title": "New York", 
     "Description": "abc" 
    }, 
    { 
     "Title": "chicago", 
     "Description": "jdfjjfj" 
    }, 
    { 
     "Title": "chicago", 
     "Description": "abcdfdjf" 
    } 
] 

については あなたが見ることができるようにその説明がunique.Soは、誰もがどのようにユニークなものユニークなタイトルと説明をフィルタリングし、このオブジェクトの配列をフィルタリングする方法を教えてくださいすることができているのに対し、タイトルが重複しています。

基本的には、タイトルは最初にその固有の記述で来るようにフィルタリングする必要があります。

+3

あなたは、この配列は、それがフィルタリングされた後のように見えることを期待するもの投稿することができますか?これまでに試したことを示してください。 –

+0

@JasonP:あなたの応答:)ありがとう、私はちょうどjgroenenが言及したように、複数の説明に続いて単一のタイトルを持つ配列をしたかった。 –

答えて

2
var rs = {}; 
$.each(objs, function(i, obj) { 
    if (rs[obj.Title] === undefined) rs[obj.Title] = []; 
    rs[obj.Title].push(obj.Description); 
}); 

はjsFiddleでそれを確認してください:http://jsfiddle.net/U6qu4/

+0

ありがとう、その作品:) –

0
for(var i=0;i<=objs.length;i++){ 
for(var j=i+1;j<=objs.length;j++){ 
    if(objs[i].Title==objs[j].Title || objs[i].Description==objs[j].Description){ 
    //do some stuff to filter 
     objs.splice(j,1) //it can be used to remove the matched element 
    } 
} 

関連する問題