問題の概要
キャンディーの出荷があるとしましょう。出荷にはいくつかの箱があり、各箱にはいくつかの固有のキャンディーの種類があります。すべてのボックスには、他のすべてのボックスとは異なる一意の ID があります。同じことがキャンディータイプにも当てはまります。さらに、キャンディーには、色、味、量などの追加の特徴があります。
サンプルコード
次の HTML の例を見てください。
<div class="shipment">
<div class="box" data-boxid="a">
<div class="candy" data-candyid="1" data-color="orange" data-flavor="orange" data-qty="7">
<!-- unimportant content -->
</div>
<div class="candy" data-candyid="2" data-color="red" data-flavor="strawberry" data-qty="4">
<!-- unimportant content -->
</div>
</div>
<div class="box" data-boxid="b">
<div class="candy" data-candyid="3" data-color="green" data-flavor="lime">
<!-- unimportant content -->
</div>
</div>
</div>
以前の試み
jQuery の.map()
関数を使用した同様のテーブル解析の例を見たことがあり.each()
ます。
望ましい出力
次のようなJSON オブジェクトを (jQuery を使用して) 生成したいと考えています。
{
"shipment": {
"a": {
"1": {
"color": "orange",
"flavor": "orange",
"qty": "7"
},
"2": {
"color": "red",
"flavor": "strawberry",
"qty": "4"
}
},
"b": {
"3": {
"color": "green",
"flavor": "lime"
}
}
}
}
その他の注意事項
私のアプリはすでに jQuery を広く使用しているため、この仕事には論理的なツールのように思えます。 ただし、プレーンな JavaScript の方が適切な選択である場合は、遠慮なくそう言ってください。
HTML は常に整形式であり、常に指定された形式に従います。ただし、場合によっては、情報が不完全な場合があります。 3 番目のキャンディーには数量が指定されていないことに注意してください。そのため、オブジェクトの作成中に数量が単純に無視されました。