2016-05-02 16 views
-4

マイアレイ:が重複配列のキーをマージjavascript配列に

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

は、この1つは厄介な配列で、私は私の結果を合わせ、きれいにしたいと思います:

結果:

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

マイコード(擬似):

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.Pushing xArrとyArr zArrにし、代わりにすることを返します。

どのように進むべきか考えていないが、私はまだJavaScript配列のエキスパートではないことに同意する。私はちょうどこの問題について、多かれ少なかれ擬似的な説明をする方法を求めています。

+3

'[...]'私はこの謎のメモが好きです!あなたは何を試しましたか、なぜそれがうまくいかなかったのですか?読んでください:[質問] –

+2

あなたのサンプルオブジェクトdoesntは意味をなさないようです、あなたはそれを見て、それが正しいことを確認できますか?まだ何か試しましたか? – Marie

+0

期待どおりの結果が得られない場合は、誰もお手伝いできません。 – ahitt6345

答えて

1

あなたが

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);

+0

ワウマンは素晴らしいです!どうもありがとう 。もし私が尋ねることができるなら、あなたはこのコードを説明できますか? – TheAnimatrix

+0

あなたはそれについてすべてここで学ぶことができますhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce –

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));

+0

ありがとうたくさんの男!しかし、Nenad Vracarの答えが最初に来たので、私は彼に賞を与えなければなりませんでした。どちらの場合でも、このコンセプトがどのように機能するのか把握できませんでした。 reduce関数は正確に何をしますか? – TheAnimatrix

関連する問題