目标
例如 a = ['a', 'b', 'c']
,可以通过a[0]
得到'a'
那么info = { success: { text: 'yes'}, warning: { text: 'wrong' , url: '/home'} }
,能不能通过类似info[0]
的方式对应到{text:'yes'}
呢?当然是可以的,
实现
根据输入的indexAsYouWant
取出对象中对应的值
infoResult = this.info[Object.keys(this.info)[indexAsYouWant]]
说明
ES5
的Object.keys方法,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键名。
比如:
var arr = [a:1, b:2];
console.log(Object.keys(arr)); // console: ["a", "b"]
然后就ok了
应用
比如获得的场景值是0,1,2,3,对应default,success,fail,special的业务场景,每种场景有不同的提示文字、icon、主题色、按钮显示、事件
如果合适的话,可以考虑用类似下面之类的方式来处理
info = {
default: {
text: 'default',
button:false,
color: '#3D9EE9',
icon:'underway',
func: this.defaultFunc
},
success: {
text: 'yes',
func: ()=>{
console.log('success')
}
},
warning: {
text: 'wrong' ,
url: '/home'
}
}
参考
Object.keys()的详解和用法