0

次のコードでは、JSON 文字列をオブジェクトに変換した後、2 番目のコンソール ステートメントで最後の要素のみが表示され、最初の要素は無視されます。なんで?最初の要素を取得するにはどうすればよいですか?

        var key_val_pair = keyvalues;  
        console.log(key_val_pair);  //{"4":"123","4":"456"}

        key_val_pair = JSON.parse(key_val_pair);
        console.log(key_val_pair); // {"4":"456"}
       for(var entry in key_val_pair)
       {
            console.log(entry); 
            console.log(key_val_pair[entry]); 
       }
4

3 に答える 3

1

あなたが持っていたら何を期待しますか

var a;
a = "123";
a = "456";

123 と 456 の両方があると思いますか? いいえ、元の値の 123 をオーバーライドするため、456 になると予想されます。オブジェクトでも同じことが起こり、2 番目の「4」キーが最初の値をオーバーライドします。

キーごとに複数の値が必要な場合は、配列である必要があります。それがどのように見えるべきかは

{ "4": ["123","456"] }
于 2013-09-24T09:52:39.860 に答える
1
var myArray = [];
myArray[0] = 1;
console.log(myArray[0]);
myArray[0] = 2;
console.log(myArray[0]);

2番目に何console.logを印刷すると思いますか? 明らかに2、ですよね?なぜなら、同じインデックスに書き込むからです。

同様に、JSON データでは、以前に保存され456たのと同じ場所に書き込まれます。123そのため、最初の要素がありません。

于 2013-09-24T09:53:13.477 に答える