`

js 数组与对象的区别

    博客分类:
  • js
 
阅读更多
学习javascript的时候,我曾经一度搞不清楚”数组”(array)和”对象”(object)的根本区别在哪里,两者都可以用来表示数据的集合。
 
比如有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢?
 
我后来才知道,数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。
 
当然,数组和对象的另一个区别是,数组的数据没有”名称”(name),对象的数据有”名称”(name)。
 
但是问题是,很多编程语言中,都有一种叫做”关联数组”(associative array)的东西。这种数组中的数据是有名称的。
 
比如在javascript中,可以这样定义一个对象:
 
var a={“城市”:”北京”,”面积”:16800,”人口”:1600};
 
但是,也可以定义成一个关联数组:
 
a["城市"]=”北京”;
a["面积"]=16800;
a["人口"]=1600;
 
这起初也加剧了我对数组和对象的混淆,后来才明白,在Javascript语言中,关联数组就是对象,对象就是关联数组。这一点与php语言完全不同,在php中,关联数组也是数组。
 
比如运行下面这段javascript:
 
var a=[1,2,3,4];
 
a['foo']=’Hello World’;
 
alert(a.length);
 
最后的结果是4,也就是说,数组a的元素个数是4个。
 
但是,运行同样内容的php代码就不一样了:
< ? php
 
$a=array(1,2,3,4);
 
$a["foo"]=”Hello world”;
 
echo count($a);
 
? >
 
最后的结果是5,也就是说,数组a的元素个数是5个。
 
分享到:
评论

相关推荐

    js数组数据和对象数据做比较,并改变数组的值

    js数组数据和对象数据做比较,并改变数组的值

    JS数组中对象去重操作示例

    - **《JavaScript数组操作技巧总结》**:涵盖数组的创建、遍历、合并、排序、过滤等多种操作。 - **《JavaScript字符与字符串操作技巧总结》**:涉及字符串的拼接、截取、查找、替换等方法。 - **《JavaScript...

    多维数组和对象-深去重和深拷贝.js

    对多维数组,对象,进行去重,相同的值只保留一个,常见的new Set()和filter,只能去重一维数组,并不能进行深层的去重,逻辑:判断是否为对象,为对象判断是否为数组或是真的对象,递归一直筛选为值,判断首次...

    javascript中数组、对象

    JavaScript数组支持多种操作方法,如`push`(在末尾添加元素)、`pop`(移除并返回末尾元素)、`shift`(移除并返回首位元素)、`unshift`(在首位添加元素)、`slice`(截取子数组)、`splice`(插入、删除或替换...

    js获取对象,数组所有属性键值(key)和对应值(value)的方法示例

    尽管数组在概念上与对象不同,但在JavaScript中,数组也被视为一种特殊的对象,其索引被视为属性。 1. 获取对象的键(keys)和值(values) 在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性...

    js数组相减简单示例【删除a数组所有与b数组相同元素】

    扩展阅读中提及的专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,为读者提供了更多的学习资源。通过这些资源,读者可以更加全面地掌握JavaScript中数组操作的多种技巧和方法,从而...

    js实现删除嵌套数组对象返回新数组

    嵌套的复杂数组对象,删除深层嵌套后返回新数组。 如:var data = [ { id: '1', name: 'www' }, { id: '2', name: 'qqq' }, { id: '3', name: 'eee', children: [ { id: '4', name: ...

    js解析php数组对象数组对象数组对象.docx

    ### JavaScript 解析 PHP 数组对象 #### 一、概述 在 Web 开发中,JavaScript 和 PHP 是两种非常重要的编程语言。PHP 主要用于服务器端的数据处理与逻辑控制,而 JavaScript 则负责客户端的交互和数据展示。在实际...

    asp.net中后台c#数组与前台js数组交互

    ASP.NET中后台C#数组与前台JS数组交互 在ASP.NET中,后台C#数组与前台JS数组的交互是一个常见的问题。前台JS数组需要从后台C#数组中获取数据,而后台C#数组则需要从数据库中获取数据。下面我们将详细介绍如何实现这...

    js一维数组、多维数组和对象的混合使用方法.docx

    JavaScript数组的灵活性使得我们可以混合存放各种类型的数据。 接着,对象则提供了键值对的存储方式,便于我们通过特定的键来访问和操作数据: ```javascript var person = { name: "飞鱼", age: 25, height: ...

    js数组中存对象,根据对象的属性进行去重

    在进行web项目开发的时候,有时候需要把一些前端的数组进行去重处理,得到一个去重后的数据,然后在进行相关的操作

    js利用apply(), Math object, js数组,对象完全智能验证

    在这个主题中,我们将深入探讨`apply()`方法、Math对象以及JavaScript数组和对象的验证。 `apply()`是JavaScript中的一个函数调用方式,它允许我们改变函数调用的上下文(即`this`值)并传入参数数组。`apply()`的...

    js脚本数组,对象,字符对比是否相同

    js脚本数组,对象,字符对比是否相同

    全国行政区划数据 js对象数组

    全国行政区划数据 js对象数组

    一步看懂JS数组对象的方法

    用图片描述JS数组对象的方法,简单清晰,不懂的可以再翻翻书,包括 map push sort join some splice .... 各种筛选 切割 转换 排列

    js数组转换成tree结构数组

    js数组转换成tree结构数组算法

    js将类数组对象转换成数组对象

    在JavaScript中,类数组对象并不是真正的数组,但是它们看起来和数组很相似,因为它们也有索引和length属性。类数组对象包括但不限于Arguments对象(函数调用时传入的参数集合)、HTMLCollection(如document....

    JS中数组与对象的遍历方法实例小结

    针对数组操作和遍历的高级技巧以及对象操作的深入理解,可以参考文章中推荐的其他专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,这些内容涵盖了更多细节和案例,是深入学习...

    JavaScript类数组对象转换为数组对象的方法实例分析

    本文实例分析了JavaScript类数组对象转换为数组对象的方法。分享给大家供大家参考,具体如下: 1、类数组对象: 拥有length属性,可以通过下标访问; 不具有数组所具有的方法。 2、为什么要将类数组对象转换为数组...

    详解vue 数组和对象渲染问题

    在Vue.js中,数组和对象的渲染问题是开发者经常会遇到的挑战。Vue的响应式系统依赖于数据劫持来实现视图与数据的双向绑定。当数组或对象的属性发生变化时,视图通常会自动更新以反映这些变化。然而,由于JavaScript...

Global site tag (gtag.js) - Google Analytics