删除数组的重复数组:javascript

时间:2017-05-10 09:42:03

标签: javascript arrays

我正在使用javascript数组,其中我有一个数组数组,如

var arr = [ 
  [ 73.0191641, 33.5720131 ],
  [ 73.0191641, 33.5720131 ],  
  [ 3.0191641, 33.5720131 ],
  [ 73.0191641, 33.5720131 ],
  [ 73.0191641, 33.5720131 ],
  [ 73.0192222, 33.5778921 ],
  [ 73.0192222, 33.5778921 ]];

在那里,我需要删除重复的数组。我尝试过这种方法,但它对我没用,可能是我错过了或做错了什么。

var distinctArr = Array.from(new Set(arr));

虽然此方法仅适用于对象数组。如果有人可以提供帮助,请提供帮助。谢谢你的时间。

2 个答案:

答案 0 :(得分:2)

Lodash是做这些小事的好方法。

uniqWith使用比较isEqual可以解决您的问题。

var arr = [ 
  [ 73.0191641, 33.5720131 ],
  [ 73.0191641, 33.5720131 ],  
  [ 3.0191641, 33.5720131 ],
  [ 73.0191641, 33.5720131 ],
  [ 73.0191641, 33.5720131 ],
  [ 73.0192222, 33.5778921 ],
  [ 73.0192222, 33.5778921 ]];

_.uniqWith(arr,_.isEqual)

return -> [Array(2), Array(2), Array(2)]

答案 1 :(得分:1)

您可以使用以下方法。



var arr = [ { person: { amount: [1,1] } }, { person: { amount: [1,1] } }, { person: { amount: [2,1] } }, { person: { amount: [1,2] } }, { person: { amount: [1,2] } }];

   hash = [...new Set(arr.map(v => JSON.stringify(v)))].map(v => JSON.parse(v));
   
   document.write(`<pre>${JSON.stringify(hash, null, 2)}</pre>`);
&#13;
&#13;
&#13;