2016-03-05 85 views
0
var newarray= 
[ { value: 'Large', name: 'Size' }, 
{ value: 'Red', name: 'Color' }, 
{ value: 'Cotton', name: 'Material' }, 
{ value: 'Affinity', name: 'Collection' }, 
{ value: 'Pine Montage', name: 'Style' }, 
{ value: 'Large', name: 'Size' }, 
{ value: 'Red', name: 'Color' }, 
{ value: 'Jute', name: 'Material' }, 
{ value: 'Affinity', name: 'Collection' }, 
{ value: 'Pine Montage', name: 'Style' }, 
{ value: 'Large', name: 'Size' }, 
{ value: 'Green', name: 'Color' }, 
{ value: 'Jute', name: 'Material' }, 
{ value: 'Affinity', name: 'Collection' }, 
{ value: 'Pine Montage', name: 'Style' } ]; 

這裏的數組的值是我的陣列我需要找到在一個陣列非重複值對象的獨特陣列,請幫如何返回非重複的對象

+0

因此,也許通過輸入陣列循環,添加項目到另一個陣列,如果他們不存在?你卡在哪裏? – nnnnnn

+0

好的,讓我試試這個!感謝您的建議 – sunnyn

+0

你能告訴我如何比較新的臨時陣列和舊陣列的對象 – sunnyn

回答

1

我建議遍歷數組並使用查找過濾項目,如果項目存儲在哈希映射中。

var array = [{ value: 'Large', name: 'Size' }, { value: 'Red', name: 'Color' }, { value: 'Cotton', name: 'Material' }, { value: 'Affinity', name: 'Collection' }, { value: 'Pine Montage', name: 'Style' }, { value: 'Large', name: 'Size' }, { value: 'Red', name: 'Color' }, { value: 'Jute', name: 'Material' }, { value: 'Affinity', name: 'Collection' }, { value: 'Pine Montage', name: 'Style' }, { value: 'Large', name: 'Size' }, { value: 'Green', name: 'Color' }, { value: 'Jute', name: 'Material' }, { value: 'Affinity', name: 'Collection' }, { value: 'Pine Montage', name: 'Style' }], 
 
    unique = function (a) { 
 
     var o = {}; 
 
     return a.filter(function (b) { 
 
      var k = b.name + '|' + b.value; 
 
      if (!(k in o)) { 
 
       o[k] = true; 
 
       return true; 
 
      } 
 
     }); 
 
    }(array); 
 

 
document.write('<pre>' + JSON.stringify(unique, 0, 4) + '</pre>');

0

可以使用Set用於獲取唯一值

var uniq = Array.from(new Set(newarray.map(function(a) { 
    return JSON.stringify(a); 
}))).map(function(a) { 
    return JSON.parse(a) 
}); 

console.log(uniq); // will print your unique values