合并javascript数组中的重复数组键

时间:2016-05-02 19:49:35

标签: javascript jquery arrays json

我的阵列:

{ { PID : [ '1' , '2' , '3' , ..] } , PID : [ '5' , '6' , '7' , '8' ....] , PID : .....} }

这是一个混乱的数组,我希望我的结果结合并清洁:

结果:

{ {PID : [ '1' , '2' , '3' , .. , '5' , '6' , '7' and so on ] }}

我的代码(PSEUDO):

var links = [];

while( looping of a condition )
{

links.push( function(){

var xArr = [];
var yArr = [];
$.each(function(){
xArr.push(somevalue);
yArr.push(somevalue);
})

return { PID : xArr , SKU : yArr  } );

}

这段复杂的代码在重复键“PID”下生成了一个包含多个数组的数组。

我尝试了什么:

1.将xArr和yArr压入zArr并返回。

我不知道如何继续,我同意我还不是javascript数组的专家。我只是想问一个解决这个问题的方法,或多或少的伪解释。

2 个答案:

答案 0 :(得分:1)

如果将其更改为包含对象的数组,则可以使用reduce



var ar = [{PID: ['1', '2', '3', ]}, {PID: ['5', '6', '7', '8']}];

ar = ar.reduce(function(a, el) {
  a.PID = (a.PID || []).concat(el.PID);
  return a
}, {})

console.log(ar);




答案 1 :(得分:1)

输入元素错误,我想出了基于Reduce的内容:

var arr = [ { PID : [ '1' , '2' , '3'] } , {PID : [ '5' , '6' , '7' , '8'] }];

var result = arr.reduce(function(previousValue, currentValue) {
  return {PID: previousValue.PID.concat(currentValue.PID)};
});

document.write(JSON.stringify(result, 4, 4));