我想迭代一个对象数组,但是我从REST API服务获取父对象,有时嵌套的对象数组将会丢失,例如:
var data = [
{
"post": {
"message": "this is a test",
"comments": [
{
"comment_text": "this is a comment"
}
]
}
}
]
如果我希望迭代评论,但无法保证post
或comment
对象存在,我目前使用以下方式进行预验证:
if (data && data.post && data.post.comments) {
//iteration
}
是否有更简洁的方法来执行验证部分?
答案 0 :(得分:0)
ImmutablsJS的一个好处(在它的核心功能之外 - 不变性)是它暴露的漂亮API。
如果您的数据是不可变Map
对象,则可以像这样迭代comments
:
data.getIn(['post', 'comments'], List()).map(...)
请注意,此代码无需任何if
语句即可使用,因为您可以将可选的默认结果传递给getIn
,在这种情况下为空List
。