验证嵌套对象的存在

时间:2017-06-19 08:33:14

标签: javascript node.js

我想迭代一个对象数组,但是我从REST API服务获取父对象,有时嵌套的对象数组将会丢失,例如:

var data = [
  {
    "post": {
      "message": "this is a test",
      "comments": [
        {
          "comment_text": "this is a comment"
        }
      ]
    }
  }
]

如果我希望迭代评论,但无法保证postcomment对象存在,我目前使用以下方式进行预验证:

if (data && data.post && data.post.comments) {
  //iteration
}

是否有更简洁的方法来执行验证部分?

1 个答案:

答案 0 :(得分:0)

ImmutablsJS的一个好处(在它的核心功能之外 - 不变性)是它暴露的漂亮API。 如果您的数据是不可变Map对象,则可以像这样迭代comments

data.getIn(['post', 'comments'], List()).map(...)

请注意,此代码无需任何if语句即可使用,因为您可以将可选的默认结果传递给getIn,在这种情况下为空List