数组和对象两者都可以用来表示数据的集合,曾一度搞不清楚”数组”(array)和”对象”(object)的根本区别在哪里。

有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢?

我后来才知道,数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。

数组和对象的另一个区别是,数组的数据没有”名称”(name),对象的数据有”名称”(name)。

当然,两者可以相互转换,不过似乎,不太简单。

比如数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17var scoreObject = {"Tony": {"Math": 95,"English": 79,"Music": 68},"Simon": {"Math": 100,"English": 95,"Music": 98},"Annie": {"Math": 54,"English": 65,"Music": 88}}  

转成格式:
var scoreArray = [ ["Tony", 95, 79, 68], …… ];

代码如下:

var arr6=[]; for(var i in scoreObject){ //第一次使用这种for循环,这里i并不是i=1,i=2,i=3....这种数字,而是i=Tony,i=Simon,i=Annie var arr7=[]; arr7.push(i); for(var j in scoreObject[i]){ //同理这里的for循环里的 j 也不是 1,2,3.。。 arr7.push(scoreObject[i][j]); } arr6.push(arr7); } console.log(arr6);

另数组转对象

// 数组转对象 let arr2 = [{ name: 'dr', ct: 'dr001' }, { name: 'ljy', ct: 'ljy002' }] let obj2 = {} arr2.forEach(item => { obj2[item.name] = item.ct }) console.log('obj2', JSON.stringify(obj2, null, 2)); // obj2 { // "dr": "dr001", // "ljy": "ljy002" // } console.log(obj2); // {dr: "dr001", ljy: "ljy002"}

另一个小tipvar a=[1,2,3,4];
a['foo']=’Hello World’;
alert(a.length);
最后的结果是4,也就是说,数组a的元素个数是4个。

c#json对象转数组_数组和对象的区别相关推荐

  1. 扩容是元素还是数组_数组是如何随机访问元素?数组下标为什么从0开始,而不是1?...

    作者:鹏磊 来源:搜云库技术团队 数组如何实现随机访问元素 什么是数组? 数组(Array)是一种线性表数据结构,它用一组连续的内存空间,来存储相同类型的数据. 什么是线性表(Linear List) ...

  2. java list 转数组_数组转List,一定要小心这个坑!

     关注"Java技术迷"升职加薪不脱发! 在日常开发过程中,数组转List的使用频率非常之高.大家可以回想一下,通常你都是怎么转的呢? 用代码说话,下面来看一段代码: public ...

  3. pycharm定义空的二维数组_数组与面向对象

    数组与面向对象 数组 一维数组 数组:[ ] 存储相同类型的多个数据 变量:单个数据 数组:多个数据 数组的特点: 引用数据类型 数据是个容器,长度一旦确定不可改变 一个数组中存放的多个数据的类型要求 ...

  4. arrays中copyof复制两个数组_数组,及二维数组

    1.1 命令行参数(C) 在程序运行过程中,可以向应用程序传递一些参数,这些参数称为命名行参数. public 命令行参数以字符串的形式传入args数组中.可以一次传递0-多个参数,以空格分割. 如果 ...

  5. c字符串分割成数组_数组与字符串

    定义数组时,应该注意以下几点: (1) 数组使用的是方括号[ ],不要误写成小括号( ). (2) 常量表达式的值必须是一个正整数值,不能含有变量,但是可以是符号常数或常量表达式. (3) 数组定义后 ...

  6. java对象工厂池_[转载]Java对象池技术的原理及其实现

    作者:汪永好 出处:计算机与信息技术 责任编辑: 方舟 [ 2006-11-25 07:00 ] 摘 要 :本文在分析对象池技术基本原理的基础上,给出了对象池技术的两种实现方式.还指出了使用对象池技术 ...

  7. snmpset对象不可写_[Python]可变对象与多进程通信

    一.可变对象与不可变对象 参考Python 的函数是怎么传递参数的? 具体看文档就行了,这里引用文章的结论: 1.对于不可变对象作为函数参数,相当于C系语言的值传递: 2.对于可变对象作为函数参数,相 ...

  8. 对象类型数据和对象实例数据_服务数据对象简介

    简而言之,SDO是用于数据应用程序开发的框架,其中包括体系结构和API. SDO执行以下操作: 简化J2EE数据编程模型 在面向服务的体系结构(SOA)中抽象数据 统一数据应用程序开发 支持和集成XM ...

  9. 千里眼摄像头支持对象存储吗_视频监控对象存储

    一. 中东市场,国际安防厂家活跃 Milestone.Genetec.Thales.Honeywell.Bosch.Hikivision.Dahua , Tyco, Samsung, AXIS,Pec ...

最新文章

  1. 浅析Python中bytes和str区别
  2. mysql5.6.20二进制安装
  3. Hasor:生命周期
  4. CV-机器视觉、图像处理方面的书籍
  5. WebStorm荣获InfoWorld2014年度科技奖
  6. java使用MD5加密
  7. 西瓜书学习记录-线性模型(第三章)
  8. 界面原型设计工具Balsamiq、墨刀、Axure、Mockplus
  9. matlab字符和字符串,MATLAB字符和字符串
  10. oracle宣传视频下载,1300首 Audiomachine 背景音乐电影宣传预告片配乐合辑(23集)...
  11. 去哪儿-11-city-components
  12. CCF201709-1 打酱油
  13. spring jpa mysql集群_微框架:Springboot+Jpa+mysql零基础上手班
  14. [译]用javascript实现一门编程语言-词法分析
  15. el-select 默认选中值
  16. 仓库管理软件免费版选型应该注意的关键点
  17. 记一次失败的项目经历
  18. JavaFX Scene Builder 2.0 + IDEA 制作客户端界面
  19. 上半年要写的博客文章29
  20. 解决active样式在ios手机上没有生效的问题

热门文章

  1. 模型压缩的开源项目工具
  2. pyhton列表习题
  3. WPF 浏览PDF 文件
  4. CSS3背景线性渐变
  5. 编写一个方法,数出从0到n中数字2出现了几次?
  6. target与currentTarget的区别?
  7. Debain/ArchLinux/Gentoo 等将合并为超级Linux
  8. 返回代表指定日期的指定日期部分的整数。返回当前周
  9. dom4j ---最好的xml解决方案?
  10. LLYFSpy W.I.P