javascript - 构造js对象时如何根据条件进行对象属性赋值?

标签 javascript arrays lodash

我正在使用lodash _.map,尝试根据条件分配变量值,因此在下面的代码中我只想在oldDrugPrice.mailPrice中有对象时才调用convertPrice。我们如何完成这个任务?

如果 oldDrugPrice 没有 mailPrice,则不想在对象中添加 mailPrice。

main.js

return _.map(cvsResponse, function(oldDrugPrice) {
    return {
      isBrand:        oldDrugPrice.brand,
      drugForm:       capitalizeWords(oldDrugPrice.drugForm),
      mailPrice:      convertPrice(oldDrugPrice.mailPrice, version),
    };

最佳答案

先创建对象,如果条件为true则添加属性,然后返回对象

return _.map(cvsResponse, function(oldDrugPrice) {

  const obj = {
    isBrand: oldDrugPrice.brand,
    drugForm: capitalizeWords(oldDrugPrice.drugForm)
  };

  if (typeof oldDrugPrice.mailPrice === 'object') {
    obj.mailPrice = convertPrice(oldDrugPrice.mailPrice, version),
  }
  return obj;
})

关于javascript - 构造js对象时如何根据条件进行对象属性赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57065385/

相关文章:

javascript - 对 mongoose 返回的结果使用 lodash 时输出不正确

javascript - Canvas .fillText 函数在第一次后不起作用

JavaScript - 如何使用解析为 PHP 的变量数据?

javascript - 克隆或应用 : which is "better"?

javascript - 将数组元素从 [1] 移动到 [0]

c - 创建节点的 malloc 数组时出现段错误

javascript - Lodash groupby 多个条件

javascript - 字符串 'null' 、 'true' 、 'false' 等到 JS 中的实际 null、true 和 false

java - 将 ArrayList 转换为 DefaultListModel

javascript - 检查对象值数组是否存在于另一个数组中但长度不同