我正在使用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),
};
答案 0 :(得分:1)
首先创建对象,并在条件为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;
})
答案 1 :(得分:0)
您可以在逻辑短路的情况下使用对象散布。如果oldDrugPrice.mailPrice
不是undefined
,它将使用mailPrice
道具扩展对象,并将其添加到最终对象中。如果_.isUndefined()
返回true
,则将应用空对象。
_.map(cvsResponse, function(oldDrugPrice) {
return {
isBrand: oldDrugPrice.brand,
drugForm: capitalizeWords(oldDrugPrice.drugForm),
..._.isUndefined(oldDrugPrice.mailPrice) ?
{} : { mailPrice: convertPrice(oldDrugPrice.mailPrice, version) },
};
})