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

获取所有cids 的数组:

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

通常,如果您希望项目不止一项,您可以使用forEachfor 循环或特定于库的方法对它们进行迭代。使用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

如何使用 node.js 访问 json 对象的子元素

node.js如何删除数组子文档的元素?

Coffeescript / Node.js:如何从对象数组中删除重复对象?

如何将对象中特定键的值存储到数组中 - Vue

如何使用node.js中的循环将表单数据保存为对象和对象数组到mongodb?