使用 JavaScript 中的对象的哈希表功能
Hashtable functionality using objects in JavaScript
好的,我有以下情况:我得到一个对象,它是一个带有列表的数组。数组中始终有 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 处向对象添加条目,而是添加对象.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); });
}
您将如何解决这个问题?我的代码有什么问题?(哦,性能无关紧要)
如果您提供一个输入示例(即 $.parseJSON(data))或创建一个 jsFiddle,这将有所帮助。
但一个可能的问题是outputArray.isbn13
.您必须var isbn13 = book.ISBN13
获取一些 ISBN 值(例如 9783161484100),然后期望将其用作带有 outputArray.isbn13
的outputArray
对象的键。但是,关键是isbn13
而不是outputArray.9783161484100
。相反,请尝试
var isbn13 = book.ISBN13;
if (outputArray[isbn13] == null) {
...
}
然后,这将被解释为outputArray.9783161484100
。
相关文章:
- 如何在JavaScript中实现哈希表
- 用JavaScript中的循环传递哈希表/字典
- 将 Javascript 哈希表用于多个 If Thens
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 使用 JavaScript 中的对象的哈希表功能
- 用于 C# 的类似 V8 的哈希表
- 如何在 JavaScript 中动态创建哈希表
- 如何使用 Node.JS 在哈希表中为每个键存储多个值
- 如何在 JavaScript 中实现哈希表
- 在引擎盖下,是Javascript对象哈希表
- 如何在java脚本中打印此哈希表数据
- 如何将 Python 字典转换为 JavaScript 哈希表
- 你如何观察 Knockout 中的 JavaScript 哈希表
- 已解决查询(关于哈希表)中的解决方案给了我 NaN
- 哈希表-给定密钥的哈希计算频率
- 与哈希表相比,通过循环访问数组中对象的Javascript优化
- 数组哈希表上的循环
- 访问哈希表中的元素
- 带有键/值的Javascript测试哈希表
- 如何在没有任何名称空间冲突的情况下获得Javascript中的哈希表或记录类型