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

文章介绍了如何通过Object.keys方法结合索引访问JavaScript对象中的属性,特别是在处理动态获取对象属性时的场景。例如,利用info[Object.keys(info)[indexAsYouWant]]可以实现根据给定的索引获取对象内的值。这种方法适用于具有预定义键值对应不同业务场景的情况,如在错误提示、状态指示等场景中,每个键包含不同的文本、图标、颜色等信息。
摘要由CSDN通过智能技术生成

目标

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值