Javascriptが連想配列を持っていません。これと同等のものは、あなたが呼んでいるときの「ハッシュ」か、それが実際にあるオブジェクトです。 {"stuff": [{"name": "fred"}, {"name": "barney"}]}
以下はテストされていませんが、少なくとも正しい方向を指すようにしてください。
var input = {"stuff": {"1": { "name": "fred"}}, {"2": { "name": "barney"}} },
output = {}, key, innerKey;
for key in input
{
output[key] = [];
for innerkey in input[key]
{
output[key].push(input[key][innerKey]);
}
}
編集: 入力オブジェクトは、私が予想形式(実際には、あるいは、私はそれを最初に読んだとき、私は読んでフォーマット)を持っていないようです。現在これは、2つのプロパティがあります。
- 「もの」が
{"2": {"name": "barney"}}
に等しい別のキーなしのアイテム(キーは0かもしれないが、私はこの点についてよくわからないんですが)あり{"1": {"name": "fred"}}
- に等しい
したがって、input.stuff
には1つのアイテムしかありませんが、input[0]
には別のアイテムがあります。次のような場合は、より意味をなさないでしょう:
var input = {
"stuff": {
"1": {"name": "fred"},
"2": {"name": "barney"}
}
}
これが当てはまる場合、私のコードは機能します。与えられた入力では、それはされません。
あなたが持っているもの(最初のコード)は有効ではありませんJS:* "SyntaxError:予期しないトークン{" *あなたは本当に何を持っていますか? –
予期せぬトークンは、 "barney"の後ろの見落とされた見積もりに由来する可能性があります。そうでなければ、それは有効です。 –
@ Ryan Kinal:ああ、あなたはその見積もりに合っています。しかし、それでも有効ではない場合、エラーは次のようになります。* SyntaxError:予期しないトークン:*。 {{"stuff":{"1":{"name": "fred"}}、{"2":{"name": "barney"}}} 'のように書くと、これが有効でないことはかなり明確です。 '}}と' {"2": 'の間にキーがありません。 –