当前位置: 首页 > 知识库问答 >
问题:

深度嵌套对象中未定义变量的默认值[重复]

余信然
2023-03-14

我只找到了未定义的变量的解决方案,而不是我目前拥有的用例。

我正在从另一个对象构建一个对象,在这个对象中,我从输入对象分配了一些值,例如。

valueQuantity: {
      value: observation['obx.5'][0]['obx.5.1'][0],
      unit: observation['obx.6'][0]['obx.6.1'][0]
},

在一些输入对象中,值被定义在一些不被定义的对象中。在这种情况下,我希望值和单位为空,然而这显然是错误的。

无法读取未定义的属性'0'

在本例中,观察值['obx.5'][0]尚未定义。

我可以尝试/捕捉,但是由于结果对象很长,这将变得非常不可读。

有什么方法可以优雅地做到这一点吗?

共有1个答案

蒲曦
2023-03-14

您可以使用lodash的get函数从对象中检索嵌套的属性。

从文档中:

var object = { 'a': [{ 'b': { 'c': 3 } }] };

_.get(object, 'a[0].b.c');
// => 3

_.get(object, ['a', '0', 'b', 'c']);
// => 3

_.get(object, 'a.b.c', 'default');
// => 'default'
 类似资料:
  • 我想检查一个对象是否未定义 这状态数据值[0]。名称 我尝试了以下操作,这些操作将显示类型错误。状态数据值在控制台中未定义。 我该怎么检查这个物体呢。状态值[0]。名称未定义? 我试图这么做 我的解决方案,多亏了pranav-c-balan 一个有效的例子

  • 嗨,伙计们,我有一个问题,从一开始,我会提到我已经尝试过这个和这个 我的情况如下。我有API,它发送给我 根目录处于组件状态! 我如何更新,,,,,与?最后一个约束是我不能更改root的名称(我不能将其重命名为newRoot等) 我尝试的是调用这个函数: 因此:

  • 我有一个目标 当我做在我的节点控制台的输出如下 我希望输出如下 请帮我怎么做 我在Ubuntu 18.04中工作 我的nodejs版本是:v8。11.4

  • 我想检查Adapter类的值,它是Device类中的嵌套对象,如下所示: 插座看起来像: 适配器看起来像: 如果为空,则为字段名设置默认值。 我的方法如下: 看起来,它可以工作,但IntelliJ抱怨setter部分是无效的: 带有一条消息: 这里出现的问题是,在这种情况下,是否可以将空类型强制转换为可选,以便类型相互兼容或以不同的方式设置默认名称。

  • 我有这行代码在PHP中读取一个文件的CSV格式与MySQL数据库的结构,并显示创建它所需的SQL代码。我在这里遇到的唯一问题是,我不能打印出主键变量,因为它说它没有定义,即使我之前定义了它。有人能帮我解释一下为什么会出现这个错误吗?这是我的代码:

  • 经过在internet上的搜索,我知道了在交互式/非交互式-登录/非登录shell组合的情况下应该在哪里更改PATH变量的值。 从另一个帖子中找到的 我有“/bin/sh”作为缺省登录shell,只有/etc/profile文件用于导出系统中所有需要的环境变量。在非交互式登录shell的情况下,/etc/profile也不会被引用,尽管上面的link说它会被引用。但当我执行时, 我可以看到PATH