配列(オブジェクト?)の中にある配列(オブジェクト?)の出力
- <!DOCTYPE html>
- <html lang="ja">
- <head>
- <meta charset="UTF-8">
- <title>配列(オブジェクト?)の中にある配列(オブジェクト?)の出力</title>
- <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
- <script type="text/javascript" src="knockout-2.1.0beta.js"></script>
- <script type="text/javascript">
- $(document).ready(function () {
- ko.applyBindings(new viewModel());
- });
- function viewModel()
- {
- var self = this;
-
- var KushiAry = [
- {name: "ねぎ間", price: 168},
- {name: "ハツ", price: 136},
- {name: "レバー", price: 136},
- {name: "ぼんちり", price: 136},
- {name: "はらみ", price: 136},
- {name: "うずら玉子", price: 136},
- {name: "なんこつ", price: 136},
- {name: "手羽先", price: 168},
- {name: "せせり", price: 136},
- {name: "白レバー", price: 168},
- {name: "コニク", price: 110},
- {name: "丸ごとシマウマ", price: 290}
- ];
- var TasteAry = [
- {name: "ねぎ間", taste: "味噌"},
- {name: "ねぎ間", taste: "ポン酢"},
- {name: "ねぎ間", taste: "芥子"},
- {name: "ハツ", taste: "塩"},
- {name: "ハツ", taste: "味噌"},
- {name: "レバー", taste: "塩"},
- {name: "レバー", taste: "味噌"},
- {name: "レバー", taste: "芥子"},
- {name: "ぼんちり", taste: "塩"},
- {name: "ぼんちり", taste: "味噌"},
- {name: "ぼんちり", taste: "ポン酢"},
- {name: "ぼんちり", taste: "芥子"},
- {name: "はらみ", taste: "塩"},
- {name: "はらみ", taste: "たれ"},
- {name: "はらみ", taste: "芥子"},
- {name: "うずら玉子", taste: "味噌"},
- {name: "うずら玉子", taste: "芥子"},
- {name: "なんこつ", taste: "塩"},
- {name: "なんこつ", taste: "ポン酢"},
- {name: "手羽先", taste: "塩"},
- {name: "手羽先", taste: "たれ"},
- {name: "手羽先", taste: "味噌"},
- {name: "手羽先", taste: "ポン酢"},
- {name: "手羽先", taste: "芥子"},
- {name: "せせり", taste: "塩"},
- {name: "せせり", taste: "味噌"},
- {name: "せせり", taste: "芥子"},
- {name: "白レバー", taste: "味噌"},
- {name: "白レバー", taste: "ポン酢"},
- {name: "丸ごとシマウマ", taste: "塩"},
- {name: "丸ごとシマウマ", taste: "たれ"},
- {name: "丸ごとシマウマ", taste: "味噌"},
- {name: "丸ごとシマウマ", taste: "ポン酢"},
- {name: "丸ごとシマウマ", taste: "芥子"}
- ];
-
- // KushiAryの中にTasteAryを組み込んでいく
- for (i=0; i<KushiAry.length; i++)
- {
- k = 0;
- // Tasteを作成しておく。
- KushiAry[i]["Taste"] = new Array();
- for (j=0; j<TasteAry.length; j++)
- {
- if (KushiAry[i]["name"] == TasteAry[j]["name"])
- {
- KushiAry[i]["Taste"][k] = TasteAry[j];
- k++;
- }
- }
- }
-
- self.kushiData = ko.observable();
- self.kushiData(KushiAry);
- }
- </script>
- <style type="text/css">
- table
- {
- border-collapse:collapse;
- margin:0;
- }
- th, td
- {
- text-align:left;
- vertical-align:top;
- padding:3px;
- font-weight:normal;
- border:1px solid #ccc;
- }
- th
- {
- background-color:#ffffdd;
- }
- </style>
- </head>
- <body>
- <h1>配列(オブジェクト?)の中にある配列(オブジェクト?)の出力</h1>
- <div>
- <table>
- <thead>
- <tr><th>メニュー</th><th>味</th><th>価格</th></tr>
- </thead>
- <tbody data-bind="visible:kushiData, foreach: kushiData">
- <tr>
- <td data-bind="text: name"></td>
- <td data-bind="visible:Taste, foreach: Taste"><span data-bind="text: taste"></span>、</td>
- <td data-bind="text: price"></td>
- </tr>
- </tbody>
- </table>
- </div>
- <div style="font-size:10pt;text-align:right;margin-top:0.5em;">
- <a href="//tips.recatnap.info/" target="_top">PCスキルの小技・忘却防止メモ</a> -
- <a href="//tips.recatnap.info/wiki/" target="_top">PCスキルの小技・忘却防止メモのまとめ(wiki)</a>
- </div>
- <div style="font-size:10pt;text-align:center;margin-top:0.5em;padding:0.5em;border-top:1px solid #ccc;">
- Copyright © 2009 by PCスキルの小技・忘却防止メモ. All rights reserved.
- </div>
- </body>
- </html>