わかりました、次のシナリオがあります: リストを持つ配列であるオブジェクトを取得します。配列には常に 3 つの項目があります。
リスト内の項目には、私が興味を持っている特定のフィールド (ISBN13) があります。
JavaScript を使用して、次のようなテーブルを作成したいと考えています。
<table>
<tr>
<td>Array_1_Item_1_ISBN13</td>
<td>Array_2_Item_1_ISBN13</td>
<td>Array_3_Item_1_ISBN13</td>
</tr>
<tr>
<td>Array_1_Item_2_ISBN13</td>
<td>Array_2_Item_2_ISBN13</td>
<td>Array_3_Item_2_ISBN13</td>
</tr>
</table>
C# では、辞書を作成するだけで、次のようになります。
- 以前にキーを見たことがある場合は、新しいキーを追加してください
- 以前にキーを見たことがある場合は、文字列の作成を続けます
しかし今、私は jQuery/JS の世界にいます。
以下では、データを入力するために使用するオブジェクトを作成しようとしました。このコードには次の問題があります。
- オブジェクトのキー isbn13 にエントリを追加する代わりに、object.isbn = ... を追加します。
if() ステートメントが機能するかどうかわからない
function setBookTableFromProducts(data) { var outputArray = {}; // list is an array of books, e-books and audiobooks) $.each($.parseJSON(data), function (index, value) { // single type of book $.each(value, function (index_inner, book) { var isbn13 = book.ISBN13; if (outputArray.isbn13 == null) { var newRowStr = '<tr>'; newRowStr += '<td>' + book.ISBN13 + '</td>'; outputArray.isbn13 = newRowStr; } else { outputArray.isbn13 += '<td>' +book.ISBN13+ '</td>'; } }); }); $.each(outputArray, function (index, trArr) { trArr += '</tr>'; $('#bookTable').append(trArr); });
}
この問題をどのように解決しますか? コードの何が問題になっていますか? (ああ、パフォーマンスは問題ではありません)