Node.js - 如何检索对象/数组中元素的值
Posted
技术标签:
【中文标题】Node.js - 如何检索对象/数组中元素的值【英文标题】:Node.js - How do I retrieve the value of an element within an object/array 【发布时间】:2015-09-07 06:10:26 【问题描述】:我不确定我是否在标题中使用了正确的术语,但这是我想要从中检索数据的原始结果。
items:
[ name: 'keydose',
keys: 69,
cid: 0,
$created': '2015-06-21T19:20:38.833Z',
' $updated': '2015-06-21T19:20:38.833Z' ]
这是通过使用 twitch-irc-db 模块和 node.js 的 twitch-irc 库创建的,通过执行以下操作接收上面的输出:
db.where('users', name: user.username).then(function(result)
console.log(result);
);
我尝试使用 console.log(result.items.cid)、console.log(result.items.cid[0]) 和 console.log(result.items.cid.valueOf()) 来获取数据库中 cid 的值,但我不知道还有什么可以尝试的,我已经用谷歌搜索了很长时间,但找不到任何东西。
感谢您的宝贵时间 :)
【问题讨论】:
【参考方案1】:提示:result.items
是一个数组(括号 []
表示 JS 中的数组)。谷歌 -> javascript arrays
获取第一项的cid
:
result.items[0].cid
获取所有cid
s 的数组:
result.items.map(function (item)
return item.cid
)
或者如果你想对每个项目做某事:
result.items.forEach(function (item)
// Do stuff!
)
【讨论】:
【参考方案2】:您需要查看结构。对象将以 开头,数组将以
[
开头。当您看到一个对象时,您可以使用.propertyName
访问propertyName
。对于 Array,您当然需要使用索引来选择 Array 中的一个对象。
这是你的响应对象;
items:
[ name: 'keydose',
keys: 69,
cid: 0,
$created': '2015-06-21T19:20:38.833Z',
$updated': '2015-06-21T19:20:38.833Z' ]
我们可以使用result.items[0]
来访问数组中items
引用的第一个对象。要获得cid
,我们将使用result.items[0].cid
。
通常,如果您希望项目不止一项,您可以使用forEach
、for
循环或特定于库的方法对它们进行迭代。使用forEach
,您可以:
result.items.forEach(function(item)
console.log(item.cid);
);
【讨论】:
谢谢大家,有没有机会知道如何为 if console.log(result); 做一个 if 语句是空的?例如,如果该人名下的数据库中没有任何内容。我想为没有任何数据的用户在加入 IRC 频道后自动将数据插入数据库,因此我需要检查他们是否这样做。 @Keydose 你可以做if (!result) ...
。如果你想以任何一种方式做某事,你可以做if (result) ... else ...
,在其他情况下,你会处理它们不在数据库中。
非常感谢!在来到 Stack Overflow 之前,我花了好几个小时试图弄明白,然后绝望地在 Google 上寻找答案。你帮助我向社区介绍了一个非常积极的开始,我很高兴加入这个网站:)
@Keydose 不客气。这是一个很棒的社区。祝你好运!以上是关于Node.js - 如何检索对象/数组中元素的值的主要内容,如果未能解决你的问题,请参考以下文章
如何从 json 响应中连接来自不同对象数组的值? Node.js、Discord.js