javascript中数组与对象的使用方法区别
数组(array)是按次序排列的一组值。JS其实没有真正的数组,只是用对象模拟数组。本质上,数组属于一种特殊的对象。typeof运算符会返回数组的类型是object。
在javascript中,对象被定义为属性和值的集合。最直接的表现便是对象字面量:var obj={a:3,b:"hello",c:[1,2,3]}。相比传统的面向对象的语言,这种方式大大简化的对象创建。在这种情况下,javascript的对象其实就是一个关联数组。在javascript中,数组又可以认为是索引数组,即可以用整数来进行索引。数组和对象在这种情况下非常接近。
一、JS声明对象或数组
JS对象:{ } JS数组:[ ]
对象 var b={m:'123',n:'abc'};alert(b.m);alert(b.n);
一维数组 var a=[1,2,3];alert(a[1]);alert(a.length);
二维数组 var ar = [ [ 'a' , 'b'],[ 4, 5 , 6 , 5 ],[ 7, 8 , 9 ] ];alert(ar[1].length);
对象跟数组结合 var b={m:[{f:'123'},{g:'abc'}],n:[{h:'456'},{u:'098'}]};alert(b.m[0].f);
数组跟对象结合 var b=[{m:'abc',n:'fff'},{x:'123',y:'555'}];alert(b[1].x);
二、数组”(array)和“对象”(object)两者都可以用来表示数据的集合。
比如数组a=[1,2,3,4],和对象a={0:1,1:2,2:3,3:4},运行alert(a[1])两种结果是相同的。
这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢?
三、数组和对象的使用方法区别:
(1)创建方式不同:
数组表示有序数据的集合,而对象表示无序数据的集合。数组的数据没有”名称”(name),对象的数据有”名称”(name)。
var arr = [11,22,33,44,55];
var obj = {
attr1:'01',
attr2:'02',
attr3:'03',
attr4:'04',
attr5:'05'
}
(2)调用方法不同
对象的属性可以用点号和中括号(注意中括号内是字符串表达式,要加引号)来引用,而数组的元素使用中括号来引用。
console.dir(arr[1]);
console.dir(obj.attr1);
console.dir(obj['attr1']);
(3)对象键值唯一,数组可以重复
var arr = [11,11,33,44,55];
var obj = {
attr1:'01',
attr2:'02',
attr3:'03',
attr4:'04',
attr5:'05',
attr1:"00"
}
console.dir(arr);
console.dir(obj);
(4)对象没有长度,不能用for循环
// 对象没有长度
console.dir(arr.length); //
console.dir(obj.length); // undefined
for (var i = 0; i <arr.length; i++) {
console.dir(arr[i]);
}
(5)数组和对象都可以使用for...in 循环
for(var index in arr){
console.dir(index); // 属性
console.dir(arr[index]); // 值
}
for(var attr in obj){
console.dir(attr); // 属性
console.dir(obj[attr]); // 值
}
到此这篇关于javascript中数组与对象的使用方法区别的文章就介绍到这了,更多相关js数组与对象区别内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341