2013-07-24 29 views
5

Tôi cần lọc một mảng đối tượng có tiêu đề trùng lặp nhưng mô tả là duy nhất. Đối với ví dụLọc một mảng đối tượng có tiêu đề trùng lặp và mô tả duy nhất?

[ 
    { 
     "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" 
    } 
] 

Như bạn có thể thấy, các chức danh là trùng lặp trong khi mô tả của nó là unique.So thể ai xin vui lòng cho tôi biết làm thế nào để lọc mảng đối tượng này mà lọc ra danh hiệu độc đáo và mô tả là độc đáo.

Về cơ bản, lọc phải như vậy mà tiêu đề đến trước với các mô tả duy nhất sau đây.

+3

Bạn có thể đăng những gì bạn mong đợi mảng này để trông giống như sau khi nó đã được lọc? Và cũng cho thấy những gì bạn đã thử cho đến nay. –

+0

@ JasonP: Cảm ơn bạn đã trả lời :), tôi chỉ muốn một mảng có tiêu đề duy nhất theo sau nhiều mô tả, giống như cách jgroenen đề cập. –

Trả lời

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

Kiểm tra nó trên jsFiddle: http://jsfiddle.net/U6qu4/

+0

Cảm ơn rất nhiều, hoạt động :) –

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 
    } 
} 

Các vấn đề liên quan