JSONを解析し、いくつかの操作でデータを使用するためのハッシュマップを作成する関数を作成しました。私が見つけた問題は、私のキーが何度か繰り返され、ハッシュマップでキーごとに1つの値しかないということです。私はそれになりたい方法は、この例のようなものです:JSONの解析とハッシュマップの作成
12345 : 5
12346 : 4
12346 : 3
My機能は、この返却:だから再開する{ 12345 : 5 , 12346 : 3 }
を、それが設立された最後の値とキーをオーバーロード。私の場合は
私はすべてこの値を必要とするので、私はこのような結果が欲しい:私は別のキーを見つけた場合、私は変更する必要があります値:=>
{ 12345 : 5 , 12346 : [4,3] }
目的
の検索結果をそれを過負荷にしないでください。 最初のソリューション:あなたは(あなたが望むものに基づいて)にそれらを変更する必要が
if (iSceneGraph.merch.type === "Facing"){
facingArray[iSceneGraph.merch.ean] = iSceneGraph.merch.hcount;
}
:あなたがここに値をオーバーライドしている
getFacingCount: function(iSceneGraph){
var facingArray = {};
if (iSceneGraph.children.length > 0){
for (var i = 0; i < iSceneGraph.children.length; i++){
facingArray = Object.assign(facingArray, this.getFacingCount(iSceneGraph.children[i]));
}
}
if (iSceneGraph.merch.type === "Facing"){
facingArray[iSceneGraph.merch.ean] = iSceneGraph.merch.hcount;
}
return facingArray;
}
私は、例えば、ハッシュマップデータの一貫性のある構造を持つことをお勧めします12345:[5]、12346:[3,4]ので、常にハッシュマップ[12345]を実行できます。forEach –
この種の結果が必要になりますか? '{12345:[[1、2、3]]、12346:[[4,5,6]、[7,8,9]}'結果の種類{12345:[1,2,3]、12346:[4,5,6,7,8,9]}?あなたが後者を望むなら、私は答えを – samAlvin
以下に更新しました。反復プロパティ名を持つオブジェクトを持つことは不可能です: '{12345:5,12346:4,12346:3} 'そして結果としてあなたは結果を得ます:' {12345 :5、12346:3} ' –