-
2018-08-28 10:17:32
数组和对象的区别
对象就是包含 属性/值 的集合,数组就是一组 值 的集合
数组具有一个最基本特征:索引,这是对象所没有的,通过 数组名[索引] 可以访问数组元素。数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。数组和对象的另一个区别是,数组的数据没有”名称”(name),对象的数据有”名称”(name)。
var obj = {}; var arr = []; obj[2] = 'a'; arr[2] = 'a'; console.log(obj[2]); // 输出 a console.log(arr[2]); // 输出 a console.log(obj.length); // 输出 undefined console.log(arr.length); // 输出 3
obj[2]与arr[2]的区别
obj[2]输出’a’,是因为对象就是普通的键值对存取数据(此处对象存为键值对,即 { obj[2] : ‘a’ })
而arr[2]输出’a’ 则不同,数组是通过索引来存取数据,arr[2]之所以输出’a’,是因为数组arr索引2的位置已经存储了数据obj.length与arr.length的区别
obj.length并不具有数组的特性,并且obj没有保存属性length,故输出undefined
而对于数组来说,length是数组的一个内置属性,数组会根据索引长度来更改length的值。
为什么arr.length输出3而不是1
这是由于数组的特殊实现机制,对于普通的数组,如果它的索引是从0开始连续的,那么length的值就会等于数组中元素个数
而对于上面例子中arr,在给数组添加元素时,并没有按照连续的索引添加,所以导致数组的索引不连续,那么就导致索引长度大于元素个数(稀疏数组)。
数组和对象操作上的区别
var arr = [1,2,3,4,5,6] var stu = { name : "张三", sex : "男", age : 18, address : "四川成都", } for (var i in arr) { console.log(i, arr[i]); //输出 //0 1 //1 2 //2 3 //3 4 //4 5 //5 6 } for (var i in stu) { console.log(i, stu[i]); //输出 //name 张三 //sex 男 //age 18 //address 四川成都 }
由输出结果可以看出,for-in循环遍历时,i 的取值在数组和对象中是有区别的,i 在数组中代表索引,而在对象中代表了属性名。数组和对象操作元素的方法一致(名字[下标])。
对象可以充当数组中的元素
var scores = [ {id: 1, name:"张三", chinese: 99, math: 88, english: 37}, {id: 2, name:"李四", chinese: 79, math: 98, english: 47}, {id: 3, name:"王二", chinese: 99, math: 76, english: 27}, {id: 4, name:"麻子", chinese: 89, math: 98, english: 57}, {id: 5, name:"老宋", chinese: 99, math: 76, english: 77}, ]; var arr = { id: 1, name:"张三", chinese: 99, math: 88, english: 37, } console.log(arr.name);//输出张三 for(i=0;i<scores.length;i++){ console.log(scores[i].chinese); //循环输出语文成绩 //99 //79 //99 //89 //99 }
更多相关内容 -
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2020-10-22 03:22:36本文给大家js遍历数组和遍历对象的区别,一般来说for用来遍历数组对象而for-in用来遍历非数组对象。接下来小编给大家带来了js遍历数组和对象的区别及js递归遍历对象、数组、属性的方法详解,一起看下吧 -
vue - props 声明数组和对象操作
2020-10-15 01:09:52主要介绍了vue - props 声明数组和对象操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
js一维数组、多维数组和对象的混合使用方法
2021-01-19 15:45:30这篇文章的主要目的是讲解JavaScript数组和对象的混合使用,由于JS的弱检查特性,因此在JS数组中可以同时存储不同类型的变量,比如你可以把数字、字符串、字符、对象等内容放在同一个数组中。对象也可以做同样的事情... -
js如何区分数组和对象?+ 数组和对象的区别总结
2020-03-11 16:08:40typeof一般测试基本类型(Undefined、Null、Boolean、Number、String),对引用类型(数组,对象,函数),数组和对象返回object,函数引用类型返回Function。 typeof对于区分数组和对象是没有用的。 方法一:...前言--我们可能会经常用到typeof去判断某一个变量的类型。
typeof一般测试基本类型(Undefined、Null、Boolean、Number、String),对引用类型(数组,对象,函数),数组和对象返回object,函数引用类型返回Function。
typeof对于区分数组和对象是没有用的。
方法一:通过ES6中的Array.isArray来识别
Array.isArray([]) //true Array.isArray({}) //false
方法二:通过instanceof来识别
[] instanceof Array //true {} instanceof Array //false
方法三:通过调用constructor来识别
{}.constructor //返回object [].constructor //返回Array
方法四:通过Object.prototype.toString.call方法来识别
Object.prototype.toString.call([]) //["object Array"] Object.prototype.toString.call({}) //["object Object"]
1.创建方法不同:
2.对象没有长度,(对象没有for循环):
3.调用方法不同
4.对象键值唯一,数组可以重复5.都可以用for in循环
另外,可以参考博客:
https://blog.csdn.net/shu580231/article/details/80501889
-
数组和对象的区别总结
2018-06-27 15:04:211、创建方法:2、对象没有长度3、调用方法不同4、因为没有长度。所以对象没有for 循环5、对象键值唯一,数组可以重复6、都可以用for in 循环1、创建方法:
2、对象没有长度
3、调用方法不同
4、因为没有长度。所以对象没有for 循环
5、对象键值唯一,数组可以重复
6、都可以用for in 循环
-
PHP对象数组和一般数组区别
2021-04-03 08:02:39PHP中的foreach作为经常用到的函数,常常用来遍历数组,对于数组中的元素是值的情形(如一般常见型的数组),foreach只是将数组中的每份元素的值拷贝到each后面的变量,也就是对值本身的拷贝,对其值进行改变并不会...PHP中的foreach作为经常用到的函数,常常用来遍历数组,对于数组中的元素是值的情形(如一般常见型的数组),foreach只是将数组中的每份元素的值拷贝到each后面的变量,也就是对值本身的拷贝,对其值进行改变并不会影响到数组本身。
如: (推荐学习:PHP视频教程)$arr = array(1, 2, 3);
foreach($aa as $el){
$el =+ 100;
}
foreach($arr as $el){
echo $el;
echo "
";} // 结果:1 2 3
但是如果是对象数组的情形,也就是数组元素均为对象时,此时each后面的变量是对对象引用的拷贝,对其进行的改变会直接影响到原数组本身。这点与上面情形很容易弄混。
如:$aa = new stdClass();
$aa->name = '张三';
$bb = new stdClass();
$bb->name = '李四';
$arr = array($aa, $bb);
foreach($arr as $element){
$element->name = 'qqyumidi';
}
foreach($arr as $el){
echo $el->name;
echo "
";} // 结果:qqyumidi qqyumidi
-
Java数组和对象数组
2020-07-17 11:57:37关于数组的用法,有几种方式: 1.程序员用法 (1)数组的定义 数据类型 数组名[ ]=new 数据类型[大小]; int a[ ]=new int[5]; 说明:这是定义数组的一种方法。为了让大家明白,我画图说明。 楼是存在地球上的,那么... -
js中数组和对象的区别
2019-03-20 18:41:141.数组中的数据没有“名称”(name),对象中的数据有“名称”(name) 注意对象的值什么都可以放 2.数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。 数组... -
对象数组和对象指针
2021-03-11 16:54:45对象数组的定义和使用 可以简单的理解类就是我们自定义的数据类型,而对象就是类的实例,因此我们也可以构造对象数组和对象的指针 将具有相同类类型的对象有序地集合在一起便构成了对象数组,以一维对象数组为例,其... -
JS赋值、浅拷贝和深拷贝(数组和对象的深浅拷贝)实例详解
2020-11-20 21:19:02本文实例讲述了JS赋值、浅拷贝和深拷贝(数组和对象的深浅拷贝)。分享给大家供大家参考,具体如下: 深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。 浅拷贝 只是拷贝了基本类型的数据,而引用类型... -
JS 数组和对象的遍历方式
2022-04-15 17:28:10JS 数组和对象的遍历方式 -
js数组与对象的区别
2017-05-09 13:33:53一,数组 1. 定义一维数组:var s1=new Array(); s1=[1,2,3,4]或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4; alert(s1[0]); 结果为1; 2,,定义二维 -
对象和数组的区别
2021-06-28 17:18:23(1)创建方式不同:数组表示有序数据的集合,而对象表示无序数据的集合。数组的数据没有”名称”(name),对象的数据有”名称”(name)。 (2)调用方法不同 (3)对象键值唯一,数组可以重复 (4)对象没有... -
json数组与对象的区别
2020-08-11 11:48:23json数据的书写格式: "名称/值":"值" json的对象是写在{}中的 例如...json的数组值是写在[]中的(数组中可以包括多个对象) 例如: var json_array =[{"name1":"value"},{"name2":"value2"},{"name3":"value3"}}]; ... -
PHP中对象和数组的区别
2019-10-31 18:28:49PHP中由于数组中的数据类型可以是不同的还有关联数组的存在(不是别的语言的索引数组),导致大家对PHP的数组和对象容易产生混淆,下面看看有什么区别: 对象不仅有属性,还有方法 对象可以封装对这些数据的操作,... -
对象数组与对象指针
2022-03-10 19:56:03一、对象数组 将具有相同类类型的对象有序地集合在一起便构成了对象数组。 一维对象数组定义形式: 类名 对象数组名[常量表达式]; 如: student stu1[10]; 对象数组使用说明: 1)在建立对象数组时,需要调用构造... -
JS对象和数组的区别
2020-11-25 15:26:04JS对象和数组的区别 JavaScript 中的对象(Object)和数组(Array)有时候看起来很相似,但它们是两种不同类型的数据集合,其中对象是包含已命名的值的无序集合,而数组则是包含已编码的值的有序集合。 //数组 var... -
vue中v-for数组与对象数组与对象的不同
2020-11-07 22:49:45<div> <h1 @click="message++">{{ ... </script> 输出为: 0 1 2 3 4 1—0 2—1 3—2 id:2—位置0 name:15—位置1 由此看出: 数组对象有两个值一个是数组元素,一个是数组元素索引 对象有三个值 分别为 值 键 索引 -
数组和对象,空数组和空对象的判断和使用
2021-01-06 18:40:29数组和对象 1,创建方法 var arr = [a, b, c, d]; var obj = { attr1: 'a', attr2: 'b', attr3: 'c' } 2,对象没有长度 console.log(arr.length); //4 console.log(obj.length); //undefined 3,调用... -
JS的数组、对象和类数组对象
2020-06-16 10:03:27昨天的TS的课上听到了类数组对象,想到之前面试的时候被问到过,回想了一下,当时就提了一下函数的arguments参数是类数组对象,对其数据结构和与数组或者对象的区别的理解其实很模糊,来补一篇。 数组 Array 定义... -
数组和对象的解构赋值
2019-06-25 15:25:35定义:从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 一、数组的解构赋值 let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3 let [x, y, ...z] = ['a']; x // "a... -
区分数组和对象的三种方法
2019-06-16 13:58:25区分数组和对象的三种方法: [].constructor //ƒ Array() { [native code] } var obj = {}; obj.constructor//ƒ Object() { [native code] } [] instanceof Array //true var obj = {}; obj instanceof ... -
区别数组和对象的三种方法
2018-04-26 13:50:42区别数组和对象的三种方法因为typeof判断对象和数组都为Object的类型,所以有时无法判断一个值的类型是对象还是数组。<script type="text/javascript"> var obj = []; //现在判断 obj 是... -
python数组与对象
2022-02-08 19:36:50一:数组 1.1访问数组的元素 ...你前面学到的有关函数的一切都适用于方法,就目前而言,唯一重要的差别是调用方法的方式。❸处的方法__init__() 是一个特殊的方法,每当你根 据Dog 类创建新实例时,Python... -
Java中的对象数组
2020-12-22 22:15:33它是引用数据类型、基本数据类型的数组,在存储时也是同引用数据类型类似,同时它与自定义类对象数组的声明与引用还有一定的差别。下面以一维数组为例,对基本数据类型数组和对象数组分别探讨。 一、基本数据类型... -
基于php数组中的索引数组和关联数组详解
2020-12-18 05:44:10php中的索引数组是指以数字为键的数组。并且这个键值 是自增的 关联数组指的是一个键值对应一个值,并且这个键值是不...以上这篇基于php数组中的索引数组和关联数组详解就是小编分享给大家的全部内容了,希望能给大家一 -
Kotlin基本数组和对象数组
2020-04-02 17:18:05我最初打算写这篇文章是因为我在玩一些反射代码,并认为自己发现了一些有趣的东西。 las,绝对不是这样。... 由于自动装箱和拆箱,类型可以在其原始版本和包装版本之间互换。 换句话说,在大多数情...