我的阵列:
{ { 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数组的专家。我只是想问一个解决这个问题的方法,或多或少的伪解释。
答案 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));