学习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数组数据和对象数据做比较,并改变数组的值
- **《JavaScript数组操作技巧总结》**:涵盖数组的创建、遍历、合并、排序、过滤等多种操作。 - **《JavaScript字符与字符串操作技巧总结》**:涉及字符串的拼接、截取、查找、替换等方法。 - **《JavaScript...
对多维数组,对象,进行去重,相同的值只保留一个,常见的new Set()和filter,只能去重一维数组,并不能进行深层的去重,逻辑:判断是否为对象,为对象判断是否为数组或是真的对象,递归一直筛选为值,判断首次...
JavaScript数组支持多种操作方法,如`push`(在末尾添加元素)、`pop`(移除并返回末尾元素)、`shift`(移除并返回首位元素)、`unshift`(在首位添加元素)、`slice`(截取子数组)、`splice`(插入、删除或替换...
尽管数组在概念上与对象不同,但在JavaScript中,数组也被视为一种特殊的对象,其索引被视为属性。 1. 获取对象的键(keys)和值(values) 在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性...
扩展阅读中提及的专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,为读者提供了更多的学习资源。通过这些资源,读者可以更加全面地掌握JavaScript中数组操作的多种技巧和方法,从而...
嵌套的复杂数组对象,删除深层嵌套后返回新数组。 如:var data = [ { id: '1', name: 'www' }, { id: '2', name: 'qqq' }, { id: '3', name: 'eee', children: [ { id: '4', name: ...
### JavaScript 解析 PHP 数组对象 #### 一、概述 在 Web 开发中,JavaScript 和 PHP 是两种非常重要的编程语言。PHP 主要用于服务器端的数据处理与逻辑控制,而 JavaScript 则负责客户端的交互和数据展示。在实际...
ASP.NET中后台C#数组与前台JS数组交互 在ASP.NET中,后台C#数组与前台JS数组的交互是一个常见的问题。前台JS数组需要从后台C#数组中获取数据,而后台C#数组则需要从数据库中获取数据。下面我们将详细介绍如何实现这...
JavaScript数组的灵活性使得我们可以混合存放各种类型的数据。 接着,对象则提供了键值对的存储方式,便于我们通过特定的键来访问和操作数据: ```javascript var person = { name: "飞鱼", age: 25, height: ...
在进行web项目开发的时候,有时候需要把一些前端的数组进行去重处理,得到一个去重后的数据,然后在进行相关的操作
在这个主题中,我们将深入探讨`apply()`方法、Math对象以及JavaScript数组和对象的验证。 `apply()`是JavaScript中的一个函数调用方式,它允许我们改变函数调用的上下文(即`this`值)并传入参数数组。`apply()`的...
js脚本数组,对象,字符对比是否相同
全国行政区划数据 js对象数组
用图片描述JS数组对象的方法,简单清晰,不懂的可以再翻翻书,包括 map push sort join some splice .... 各种筛选 切割 转换 排列
js数组转换成tree结构数组算法
在JavaScript中,类数组对象并不是真正的数组,但是它们看起来和数组很相似,因为它们也有索引和length属性。类数组对象包括但不限于Arguments对象(函数调用时传入的参数集合)、HTMLCollection(如document....
针对数组操作和遍历的高级技巧以及对象操作的深入理解,可以参考文章中推荐的其他专题,例如《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》等,这些内容涵盖了更多细节和案例,是深入学习...
本文实例分析了JavaScript类数组对象转换为数组对象的方法。分享给大家供大家参考,具体如下: 1、类数组对象: 拥有length属性,可以通过下标访问; 不具有数组所具有的方法。 2、为什么要将类数组对象转换为数组...
在Vue.js中,数组和对象的渲染问题是开发者经常会遇到的挑战。Vue的响应式系统依赖于数据劫持来实现视图与数据的双向绑定。当数组或对象的属性发生变化时,视图通常会自动更新以反映这些变化。然而,由于JavaScript...