如何防止以下map函数返回未定义的对象?

时间:2017-12-01 02:40:19

标签: javascript

我有一个函数循环遍历数组,重新排列其对象,并返回结果(不包括当前对象):

// buildings = [{ objectId: '1', objectId: '2', objectId: '3' }]
// currentBuilding = { objectId: '1' }
const result buildings.map(building => {
  if (building.objectId === this.currentBuilding.objectId) {
    return
  }
  return {
    newField: building.objectId,
  }
})
return result

我希望它返回:

此功能将返回:

[{ newField: '2', newField: '3' }]

然而,现在我得到了:

[{ undefined, newField: '2', newField: '3' }]

为什么会这样以及如何解决?

1 个答案:

答案 0 :(得分:2)

你不能,但你可以过滤掉有问题的项目:

const result buildings.filter(b => b.objectId !== this.currentBuilding.objectId)
                      .map(b => ({newField: b.objectId});