我如何访问' str'在我的对象中的价值?

时间:2017-08-10 17:15:47

标签: javascript jquery html

我正在尝试返回密钥' str'在一个对象中,但我无法访问该值。

这是在控制台中返回的内容:

enter image description here

目前我使用map函数来遍历数组并返回_str值,如下所示:

let idx = currentArray.map(function(x) {
            return x._id._str;
        });

然而,它仍然将值作为对象返回。我怎样才能得到_str键的值?

这是完整的数组,没有指定id字段。如果您返回' x'在地图功能中。

enter image description here

5 个答案:

答案 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 postthe 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是数组对象之一。