调用不存在的属性的属性时减少/连接问题

时间:2017-11-07 17:52:00

标签: javascript node.js concat

如果" a_b"不存在然后下面的代码抛出undefined - 这就是我想要的:

var abc= json.reduce((a,c) => a.concat({xyz:c.a_b}), [])

但是,如果我执行以下代码并寻找" media"在" a_b"那不存在然后我就失败了#34;无法阅读财产'媒体'未定义"。

var abc= json.reduce((a,c) => a.concat({xyz:c.a_b.media}), [])

为什么会这样?

在这两种情况下" a_b"如果我只是调用它,但是如果我尝试在其中查找属性,则代码没有问题。

有没有办法解决这个问题?

例如,我正在尝试使用" ||空"但这似乎并没有在concat中工作,如下所示。

var abc= json.reduce((a,c) => a.concat({xyz:c.a_b.media || null}), [])

1 个答案:

答案 0 :(得分:0)

不要使用concat方法创建新的数组实例,而是使用push

var abc = json.reduce((a, c) => {
      a.push({ xyz: c.a_b && c.a_b.media });
      return a;
}, []);