我正在尝试返回密钥' str'在一个对象中,但我无法访问该值。
这是在控制台中返回的内容:
目前我使用map函数来遍历数组并返回_str值,如下所示:
let idx = currentArray.map(function(x) {
return x._id._str;
});
然而,它仍然将值作为对象返回。我怎样才能得到_str键的值?
这是完整的数组,没有指定id字段。如果您返回' x'在地图功能中。
答案 0 :(得分:0)
您已澄清屏幕截图为x._id
。因此,要访问_str
,您需要使用x._id[0]._str
:_str
属性位于0
属性引用的对象中(数组中的第一个条目{{ 1}}指的是。
请注意,通常,x._id
- 前缀属性不应由负责相关对象的代码之外的代码访问。您似乎不对它们负责,因此访问这些属性可能会使您的代码依赖于未记录的属性,这些属性可能会在下一个" dot"释放您正在使用的任何lib。它只是惯例,但它是非常的常见惯例。
答案 1 :(得分:0)
如果右键单击该属性,大多数浏览器控制台都可以copy property path
。
答案 2 :(得分:0)
基于this SO post和the docs,您似乎可以使用x._id.str
。
答案 3 :(得分:0)
如果我理解正确,您将收到str值,但它是一个对象而不是字符串文字。换句话说,您将获得_str: "598..."
而不是"598...."
。一种可能的解决方案是使用mongo javascript函数将str值转换为字符串。
在您的情况下,我认为return x._id.str;
之类的内容可能有效,因为_id
是MongoID.ObjectID。
我还链接了以下文档以供参考。
https://docs.mongodb.com/manual/reference/method/ObjectId/
以下是相关的SO答案:Convert ObjectID (Mongodb) to String in JavaScript
答案 4 :(得分:-2)
我认为你应该写x[_id]._str
因为_id
是数组对象之一。