【问题标题】:Extract value from object using javascript [duplicate]使用javascript从对象中提取值[重复]
【发布时间】:2016-04-11 20:27:10
【问题描述】:

我有以下对象...

var object = doc.$set;
console.log(object);

上面的console.log输出如下...

{
  createdBy: 'o5Wye6LLMGNXLn7HY',
  createdAt: Mon Apr 11 2016 15:25:35 GMT+1000 (AEST), 
  'contactDetails.orderedBy': 'MvCun8p6vxndj3cr8',
  updatedAt: Mon Apr 11 2016 18:04:14 GMT+1000 (AEST)
}

如何从'contactDetails.orderedBy' 获取值?

这样的工作没问题...

var createdBy = doc.$set.createdBy;

但这并不...

var orderedBy = doc.$set.contactDetails.orderedBy;

有没有办法可以使用 javascript 来提取值? 就像可能将其转换为字符串然后将其拆分或沿着这些线进行拆分?这可能吗?

谢谢

【问题讨论】:

    标签: javascript


    【解决方案1】:

    试试var orderedBy = doc.$set['contactDetails.orderedBy'];

    由于对象键是数字文字或有效的标识符名称,因此需要将键 contactDetails.orderedBy 引用以避免语法错误。

    只有当属性名称是数字文字或有效的标识符名称时,才能省略引号。

    createdBy 键的情况下,您可以检索像object.createdBy 这样的值,但在contactDetails.orderedBy 的情况下您需要引用,所以通过object[contactDetails.orderedBy] 访问它。

    【讨论】:

    • 你应该解释为什么会这样。
    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 好的,谢谢你的建议。 @MuhammedRefaat 刚刚编辑了答案。
    • @petter-pettersson 已编辑!
    • 现在这可以被认为是一个完整的答案
    【解决方案2】:

    如果你想操作对象,你需要了解键和值的概念

    看这个例子

    var object={
     "iAmFirstKey":'I am value',
     "i.am.second.key":'i am value'
    } 
    

    所以在您的情况下,您的 contacDetails.orderedBy 不是 Object 内的 Object 它是一个键(“字符串”)

    所以像这样使用 doc.$set['contacDetails.orderedBy'];你会得到你的价值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2019-06-07
      • 2018-05-10
      相关资源
      最近更新 更多