javascript中数组与对象的使用方法区别

 更新时间:2022年12月14日 15:03:20   投稿:yin  
数组(array)是按次序排列的一组值。JS其实没有真正的数组,只是用对象模拟数组。本质上,数组属于一种特殊的对象。typeof运算符会返回数组的类型是object。在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数组与对象区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript this用法小结

    javascript this用法小结

    this是JavaScript中功能最强大的关键字之一。不幸的是,如果你不知道它具体怎么工作,你将很难正确使用它。
    2008-12-12
  • @ResponseBody 和 @RequestBody 注解的区别

    @ResponseBody 和 @RequestBody 注解的区别

    这篇文章主要介绍了@ResponseBody 和 @RequestBody 注解的区别的相关资料,需要的朋友可以参考下
    2017-03-03
  • javascript 弹出的窗口返回值给父窗口具体实现

    javascript 弹出的窗口返回值给父窗口具体实现

    这篇文章主要介绍了javascript 弹出的窗口返回值给父窗口具体实现,有需要的朋友可以参考一下
    2013-11-11
  • Bootstrap select实现下拉框多选效果

    Bootstrap select实现下拉框多选效果

    这篇文章主要为大家详细介绍了Bootstrap select实现下拉框多选效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • js实现文字头像的生成代码

    js实现文字头像的生成代码

    这篇文章主要介绍了js实现文字头像的生成的代码,代码简单易懂,非常不错,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • JavaScript改变CSS样式的方法汇总

    JavaScript改变CSS样式的方法汇总

    JavaScript修改CSS有4种方法:1.修改节点style(内联样式);2.改变节点class或id;3.写入新的css;4.替换页面中的样式表。今天主要给大家介绍下前2种,因为后两种个人不是很推荐大家使用
    2015-05-05
  • Svelte 和 React的比较详解(一)

    Svelte 和 React的比较详解(一)

    在这篇文章中,我将Svelte 还是 React作了对比,不能以个人意见代表谁好谁坏。以及我发现使用这两个框架的一些区别,感兴趣的小伙伴可以参考阅读
    2023-04-04
  • 深入php面向对象、模式与实践

    深入php面向对象、模式与实践

    这篇文章主要介绍了深入php面向对象、模式与实践,需要的朋友可以参考下
    2016-02-02
  • 微信小程序实现横向滚动导航栏效果

    微信小程序实现横向滚动导航栏效果

    这篇文章主要介绍了微信小程序实现横向滚动导航栏效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 复选框全选与全不选操作实现思路

    复选框全选与全不选操作实现思路

    通过js简单实现下复选框全选与全不选,很常用的一个操作,具体实现思路及代码如下,有需求的朋友可以参考下,希望对大家有所帮助
    2013-08-08

最新评论