誰かが私に助けてくれますか?私は以下のコード行を理解できません。私はこのコードをデバッグするのに数時間を費やしていますが、私は修正できません。Javascript配列オブジェクト出力
var data = [
{"name":"123123123123"},
{"name":"123123123124"},
{"name":"123123123125"},
{"name":"123123123126"}
];
var x1 = {}
var basicS = {
"question":[]
}
data.forEach(function(val,i){
x1[val.name]=basicS;
});
console.log(x1);
data.forEach(function(val,i){
x1[val.name].question.push('insert');
});
console.log(x1);
出力:
は{
123123123123:{
question:[
0:"insert"
1:"insert"
2:"insert"
3:"insert"
]
},
123123123124:{
question:[
0:"insert"
1:"insert"
2:"insert"
3:"insert"
]
},
123123123125:{
question:[
0:"insert"
1:"insert"
2:"insert"
3:"insert"
]
},
123123123126:{
question:[
0:"insert"
1:"insert"
2:"insert"
3:"insert"
]
}
}
予想される出力は次のようになります。
私は一つだけを挿入していながら、四つの値は、各質問の配列内に挿入されているところから理解することができ{
123123123123:{
question:[
0:"insert"
]
},
123123123124:{
question:[
0:"insert"
]
},
123123123125:{
question:[
0:"insert"
]
},
123123123126:{
question:[
0:"insert"
]
}
}
ありません各質問 配列オブジェクト。
このタイプの問題を解決する方法はありますか?
私を助けてください。私は全く混乱している。前もって感謝します。
を使用すると、結果が見えるように期待しますか?あなたがここでやろうとしていることはまったく明確ではありません。 – JLRishe
'x1 [val.name]'は同じ 'basicS'オブジェクトを指しています。したがって、各反復では、基本的に同じオブジェクトに値を挿入しています。 javascriptでのオブジェクトの割り当ては、参照時にのみ参照されます。割り当て中は、オブジェクトの新しい参照ではなく参照が割り当てられます – abhishekkannojia
どのように見えますか? – Rick