【前端】如何像取数组一样地取对象

目标

例如 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()的详解和用法

你可能感兴趣的:(前端,前端,javascript,开发语言,vue.js)