2016-11-04 18 views
1

私の脳を荒らして、狂ったようにグーグルではありましたが、おそらく正しいキーワードで検索していません。サブキーと値のペアをjavascriptの既存の配列(JSONオブジェクト?)に追加する

{ 
    "program": 1, 
    "program": 2, 
    "program": 3 
} 

と私はノードベースのソケットの上にJSONオブジェクトのシリーズを受けています:

はそうのようなリスト/配列/ JSONシリアライズされたデータを(実際にはこの時点では関係ありません)手に入れました。このようなものになりますIO:

{ "program": 1, "sequence_number": 1 } 
{ "program": 3, "sequence_number": 2 } 
{ "program": 3, "sequence_number": 1 } 
{ "program": 2, "sequence_number": 2 } 
{ "program": 2, "sequence_number": 1 } 
{ "program": 2, "sequence_number": 3 } 

そして、何私が考え出す問題を抱えていますが押すことができるようにすることです/注入/に上記の私のリストに(それらが受信されると一度に1)この入ってくるJSONをマージ次のように作成します。

{ 
    "program": 1, 
    { 
     "sequence_number": 1 
    }, 
    "program": 2, 
    { 
     "sequence_number": 2, 
     "sequence_number": 1, 
     "sequence_number": 3 
    }, 
    "program": 3, 
    { 
     "sequence_number": 2, 
     "sequence_number": 1 
    } 
} 

「舌の先端」に類似しているが壁に達しているものの1つです。だから私は、知恵、好意的な解決策、または既知の関連するチュートリアルで正しい方向を指し示すために、コミュニティにアピールします。前もって感謝します!より多くの意味を作る

{ 
    "program": 1, 
    "sequence_list": 
    [ 
    { "sequence_number": 1 }, 
    { "sequence_number": 2 } 
    ] 
}, 
{ 
    "program": 2, 
    "sequence_list": 
    [ 
    { "sequence_number": 1 }, 
    { "sequence_number": 3 }, 
    { "sequence_number": 2 } 
    ] 
} 
... etc. 

ん:

そうのように、どのようにデータの再構築については、私のリストの悪いフォーマットに関するコメントに対処するためのアップデート08.Oct.2016

に?

{ 
    "Program 1": [], 
    "Program 2": [], 
    "Program 3": [] 
} 

、その後、あなたは配列にデータを追加することができます:あなたがベースを変更することができ液として

+1

{ "キー": "値"、{}}真の有効なJSON – AMagyar

+0

ではありません!私は、JSONデータを既存のProgram値に関連付けるサブキーと値のペアリングのいくつかのタイプを試しています。 –

+1

'{"プログラム ":1、"プログラム ":2、"プログラム ":3}'は無効です - 重複キー。 –

答えて

3

これを試してみてください - あなたが求めているものに似ていますが、有効なJavaScriptオブジェクトと。

var target = { 
 
    "program1": [], 
 
    "program2": [], 
 
    "program3": [] 
 
}; 
 

 
var source = [ 
 
    { "program": 1, "sequence_number": 1 }, 
 
    { "program": 3, "sequence_number": 2 }, 
 
    { "program": 3, "sequence_number": 1 }, 
 
    { "program": 2, "sequence_number": 2 }, 
 
    { "program": 2, "sequence_number": 1 }, 
 
    { "program": 2, "sequence_number": 3 } 
 
]; 
 

 
for (var i=0; i<source.length; i++) { 
 
\t item = source[i]; 
 
    if (target.hasOwnProperty("program" + item.program)) { 
 
    \t target["program" + item.program].push(
 
    \t {"sequence_number": item.sequence_number} 
 
    ); 
 
    } 
 
} 
 

 
document.getElementById("out").innerHTML = "<pre>" + JSON.stringify(target, null, 2) + "</pre>";
<div id="out"> 
 
</div>

+1

私の例もpreで更新します! :P – AMagyar

+1

良い子供 - それはきれいに見える;) –

+1

実際に私は2番目と3番目のパラメータも、感謝しなかった! – AMagyar

関連する問題