2015-02-07 22 views
-1

有這樣一個數組:jQuery。只輸出其他陣列上的唯一元素?

arr= [{"name":"Vasya","class_id":"1","class":{"id":"1","class":"1"}}, 
{"name":"John","class_id":"1","class":{"id":"1","class":"1"}}, 
{"name":"Smith","class_id":"2","class":{"id":"2","class":"2"}}]; 

能否請你告訴如何在的唯一值的一個單獨的數組帶來了什麼?

回答

0

您是否想要返回類對象的某些屬性的唯一值,或者完全返回唯一的類對象的唯一值?

下面的代碼將做後者,但僅返回如果所有屬性具有唯一值的類的對象(或者如果對象具有不同的屬性):

var arrOfUniqueClassObjects = arr.reduce(function (newArr, obj) { 
    var isInArr = newArr.some(function (inArr) { 
     return Object.keys(inArr).some(function (key) { 
      return obj.class.hasOwnProperty(key) && obj.class[key] === inArr[key]; 
     }); 
    }); 
    if (!isInArr) newArr.push(obj.class); 
    return newArr; 
}, []); 
相關問題