好的,我有以下场景:我得到一个对象,这是一个包含列表的数组。数组中总有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的土地上,嗯。
下面,我尝试创建一个对象,我用来填充数据。这段代码有以下几个问题:
不确定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);
});
}
您如何解决这个问题?我的代码出了什么问题? (哦,表现并不重要)
答案 0 :(得分:2)
如果您提供了输入的示例(即$ .parseJSON(数据))或者可能创建了jsFiddle,那将会有所帮助。
但一个可能的问题是outputArray.isbn13
。您var isbn13 = book.ISBN13
获取一些ISBN值(比如9783161484100),然后期望将其用作outputArray
对象outputArray.isbn13
的关键字。但是,密钥为isbn13
而不是outputArray.9783161484100
。相反,尝试
var isbn13 = book.ISBN13;
if (outputArray[isbn13] == null) {
...
}
然后将其解释为outputArray.9783161484100
。