JavaScript - 检查属性的值是否为true并返回字符串

时间:2017-09-06 04:35:33

标签: javascript ecmascript-6 lodash

我有这个条件,检查这两个属性ownertenant中的哪一个为真,并根据this.productStatusReferences或{{1}为owner分配一个字符串这是真的

tenant

我正在寻找一种更复杂的解决方案,例如与Lodash或es2015做同样的工作?

1 个答案:

答案 0 :(得分:0)

我不确定这里是否有任何改进可能是你可以使用lodash路径检查安全并删除else if链。正如评论中已经提到的那样,当两者都没有设置时你需要一个案例

if (_.has(this.projectCurrentProduct, 'occupancyType.owner')) {
   this.productStatusReferences = 'productStatusSale'
} 
if (_.has(this.projectCurrentProduct, 'occupancyType.tenant')) {
   this.productStatusReferences = 'productStatusRent'
}
if(_.isUndefined(this.productStatusReferences))

另一个改进是您可以将occupancyType更改为属性

  projectCurrentProduct: {occupancyType:'owner'}

然后你可以维护一个排序地图,然后一次性设置

 var prodcutStatusOf = {owner: 'productStatusSale', tenant: 'productStatusRent'};
 var occupancyType = this.projectCurrentProduct.occupancyType;
 this.productStatusReferences = prodcutStatusOf[occupancyType];