JavaScript - 迭代一个表,其对象可以有 2 个名称

标签 javascript ecmascript-6 lodash

我有一个 getRelatedContactsIds(relatedContacts) 方法,它遍历表 relatedContacts 并返回它的 contact.id

getRelatedContactsIds(relatedContacts) {
  this.relatedContactsIds = new Set(relatedContacts.map((element) => {
    return element.contact.id
  }))
}

我遇到的问题是我不确定 contact 对象是否具有该名称,上面示例中的 contact 对象可以是 contact 详细信息 。所以 return element.contact.id 也可以是 return element.detail.id 。 处理这种情况的最干净的方法是什么?

最佳答案

假设总是 contactdetails 只需检查contact。如果存在,则返回其 id 或返回 details.id

getRelatedContactsIds(relatedContacts) {
  this.relatedContactsIds = new Set(relatedContacts.map((element) => {
    return element.contact ? element.contact.id : element.details.id;
  }))
}

关于JavaScript - 迭代一个表,其对象可以有 2 个名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53224195/

相关文章:

javascript - 如何使用 lodash 获取对象的前 n 个元素?

javascript - 如何使用文件名数组过滤文件路径数组

javascript - 添加重要的 css 媒体查询

javascript - 我想在 css 属性中使用 Javascript 函数

javascript - 奇怪的 JavaScript 结果

javascript - ionic /Angular 等待服务准备好

javascript - JavaScript 如何使新页面包含更多 JavaScript?

javascript - JS - 在对象数组中使用 Set()

javascript - 在 JavaScript 中为解构嵌套对象中的每个键设置默认值

javascript - 使用 Lodash 过滤对象数组以仅包含键