按钮有三种状态,状态1,状态2,状态3,
一共头五组数据,
data:{
"a":{ "type":1, "state":1 }, "b":{ "type":1, "state":1 }, "c":{ "type":1, "state":1 }, "d":{ "type":1, "state":1 }, "e":{ "type":1, "state":1 },
}
我现在是if(type==1){
if(state == 1){ return '状态1' }else if(state==2){ return '状态2' }else if(state ==3){ return '状态3' }
}else if(type==2){
if(state == 1){ return '状态1' }else if(state==2){ return '状态2' }else if(state ==3){ return '状态3' }
} .....以下省略
请问有没有更好的方法解决if else 的问题
已解决
悬赏分:0
- 解决时间 2021-11-26 12:00
点赞 0反对 0举报 0
收藏 0
分享 0
回答3
最佳
-
我的思路比较骚。实际上你可以好好利用对象的属性。
// 首先定义所有状态 let stateMap = { 1: { 1: '抽烟', 2: '喝酒', 3: '烫头' }, 2: { 1: '洗', 2: '剪', 3: '吹' }, ... // 太懒我略过了 } // 渲染的时候这么用 stateMap[type][state]
Amazing!就是这么神奇。
支持 0 反对 0 举报2021-11-26 06:52
-
类似的处理,直接将状态信息封装成一个数据结构。比如你的需求,可以将状态封装成一个数组
var stateList = ['状态1', '状态2', '状态3']
取值直接是stateList[state]即可支持 0 反对 0 举报2021-11-26 08:29
-
无论是使用过滤器还是建立一个方法都行
`
getState(state){let stateMap={ 1:'状态1', 2:'状态2', 3:'状态3', 4:'状态4', 5:'状态5', } return stateMap[state] || ''
}
`支持 0 反对 0 举报2021-11-26 09:01