先说解决办法:

通过a[key]的方式获取。

具体场景是这样的:

有一个对象的key是数字组成的,这时候使用a.b的形式就不能获取到相应的value值,

如下图:

a.'111'会报错。

特别说明:

a['111']和a[111]两种写法都是一样的,没有什么区别,此用法与数组用下标访问是相同的。

请注意,如果使用方括号运算符,键名不为数值的时候,必须放在引号里面,否则会被当作变量处理。但是,数字键可以不加引号,因为会被当作字符串处理。

另:

当对象的key为一个变量时,并且使用在循环中,那我们可以通过data['key']这种方式来动态生成对象,eg:

总结:

1.对象的key一般应使用合法的变量名(字母或下划线开头的包括字母、下划线和数字的字符串) ,这种情况下通过a.key 或者 a['key']的方式都可以获取到相应的value值。

2.当特殊场景key为数字的情况下,只能通过a['key']的方式来获取相应的value值。

    如当建立一个与数据库中id一一对应的map对象的时候,

可直接用id的数值做key,虽然你可以给它加上一个字母前缀来让它符合合法的变量名的标准,

并让它的数据能通过data.key的方式访问,

但如果数据量非常大的话,

为每个id都加一个前缀,+字符连接运算也是要消耗性能的,

特别是在很少需要采用data.key方式去访问属性的情况下,

那么可以抛弃此调用方式,直接用数字做key也未尝不可,

除了key名称不符合合法变量名的标准之外,似乎并没有其它损失;

转载于:https://www.cnblogs.com/fireflyo0/p/5239464.html

对象key值为数字时的处理相关推荐

  1. 源生JS 之对象key值为数字时的取值及修改key值方法

    取值: 如果对象key值为数字使用.key(.0)无法取到对应值: 只需稍加修改obj.['0']即可取到对应值. 修改: 与取值同理: 打印效果对比处理前后: 可以看到将原始key值为0.1.2修改 ...

  2. 解决js array的key不为数字时获取长度的问题

    解决js array的key不为数字时获取长度的问题 参考文章: (1)解决js array的key不为数字时获取长度的问题 (2)https://www.cnblogs.com/leeke98/p/ ...

  3. 【MATLAB】基本绘图 ( 句柄值 | 对象句柄值获取 | 创建对象时获取句柄值 | 函数获取句柄值 | 获取 / 设置 对象属性 | 获取对象属性 )

    文章目录 一.对象句柄值获取 1.句柄值 2.创建对象时获取句柄值 3.函数获取句柄值 4.获取 / 设置 对象属性 二.获取对象属性 1.获取 线 对象属性 2.获取 坐标轴 对象属性 一.对象句柄 ...

  4. axios 参数对象的值为数组时,后端无法接收(待解决)

    1.待定 转载于:https://www.cnblogs.com/crazycode2/p/9072472.html

  5. JS中对象key为数字的使用

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>JS中 ...

  6. 02-vue(轮播图,v-bind对象用法,v-for指令,v-if指令,v-else-if,v-else指令,key值的基本使用,v-show指令,英雄搜索案例)

    01-作业-轮播图 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  7. [react] react中遍历时为什么不用索引作为唯一的key值?

    [react] react中遍历时为什么不用索引作为唯一的key值? key值的目的在Diff DOM的时候根据render前后的唯一key值快速的对树进行比较,保证key值得唯一性,如在进行中间插入 ...

  8. fastjson 序列化时指定json的key值

    json字符串中的key是下划线例如:foot_dist,而实际实体类中的属性是footDist,添加 @JSONField(name = "foot_dist")即可 packa ...

  9. C#获取动态key的json对象的值

    C#获取动态key的json对象的值 问题描述 如果直接获取某个json数组中的元素将得到如下的json {"44": {"height": 25," ...

最新文章

  1. 职称计算机考试word2003真题,职称计算机考试《Word2003》历年真题回顾(4)
  2. 处理南通一客户:Fortigate 310B Firmware丢失
  3. python3 使用psutil 查看内存占用
  4. OVS DPDK--数据结构关系(七)
  5. php in_array 和 str_replace
  6. flume spooldir bug修复
  7. 在c++中使用gotoxy
  8. Dev-Cpp 常用的快捷键(持续更新)
  9. ubuntu下sublime中修改字体
  10. java中线程死锁及避免_如何避免Java线程中的死锁?
  11. linux系统md5sum命令用不了,Linux中md5sum命令起什么作用呢?
  12. c#无标题窗口的拖动
  13. Atitti  css   transition Animation differ区别
  14. atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模
  15. 基于Neo4j计算网络节点中心性(Closeness、betweenness Centrality)
  16. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索
  17. html内容页上一页下一页,帝国CMS内容页增加内容分页上一页标签功能!
  18. 在 Microsoft Windows 平台上安装 JDK 17
  19. 获得新成就1024勋章
  20. 【HaaS Python 硬件积木】 BMP280气压传感器

热门文章

  1. Java访问修饰符public,private,protected,以及不写(默认)时的区别?
  2. 26个LinkedList用法示例大全以及与ArrayList/数组的相互转换
  3. elasticsearch手动创建和删除索引
  4. Mysql 8.0下载与安装详解,并修改安装路径
  5. 预测大盘最准确的指标_上证指数11月23日走势预测
  6. python笔试编程题_python_编程面试题
  7. 线性规划——规范型,标准型,基阵、基本解、基本可行解、基变量、非基变量.... 概念梳理
  8. 计算机系统结构结构相关实验报告,计算机系统结构实验报告(中南民族大学).doc...
  9. Oracle 原理: 公有同义词 和 私有同义词
  10. php zend gua,PHP安装使用Zend Opcache扩展