2015-02-07 65 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; 
}, []); 
相关问题