如何在javascript中比较相同的数组

时间:2016-08-10 13:50:49

标签: javascript hash

如何在Javascript中比较相同的数组

MasterHash拥有Key of Values of values。

Name1 : [1,10],
Name2 : [2,2134],
Name3 : [3,512],
Name4 : [4,771],
Name5 : [3,555],
Name6 : [1,10],
Name7 : [5, 8888],
Name8 : [1,10],
Name9 : [3,555]

想要输出

1_10 : Name1, Name6, Name8
3_555: Name5, Name9

1 个答案:

答案 0 :(得分:0)

您可以使用Object.keys()reduce()执行此操作并返回对象。

var data = {Name1 : [1,10],Name2 : [2,2134],Name3 : [3,512],Name4 : [4,771],Name5 : [3,555],Name6 : [1,10],Name7 : [5, 8888],Name8 : [1,10],Name9 : [3,555]}

var o = {}
var result = Object.keys(data).reduce(function(r, e) {
  var k = data[e].join('_');
  o[k] = (o[k] || []).concat(e);
  if(o[k].length > 1) r[k] = o[k];
  return r;
}, {});


document.body.innerHTML = '<pre>' + JSON.stringify(result, 0, 4) + '</pre>';