原文地址:
http://blog.csdn.net/starrexstar/article/details/7254292
原文作者:StarRexStar
在JS中,我们用“.”来存取一个对象属性,而数组更常用的存取属性运算符是[ ]。这样,下面的两个表达式值是相等:
<span style="font-size:16px;">object.property object["property"]</span>
两条语法最重要的区别是,前者的属性名是标识符,后者的属性名是一个字符串(这很重要)。
当采用"."运算符来存取一个对象的属性时,属性名是用标识符表示的,它们不是一种数据类型,因此程序不能对它们进行操作。而当用数组的[ ]表示法来存取一个对象的属性时,属性名是用字符串表示,字符串是JS的一种数据类型,因此可以在程序运行过程中操作并创建,见以下代码:
<span style="font-size:16px;">var add = "";
for(i=0;i<4;i++){
addr += customer["address"+i]+'\n';
}</span>
用数组[ ]存取属性的的方法,解决了程序运行时事先不知道,动态创建属性的方法,解决了某些情况下用"."操作导致硬编码的缺点。而使用"[ ]"的存取方式,我们常称为关联数组(associative array),它是一个数据结构,允许动态的将任意数值和任意字符串关联在一起。
关联数组同for/in循环结合,更为强大,见如下代码:
先考虑这样一个场景:用网络资源来计算用户在股票市场上的投资的当前总值。这个程序要允许用户输入他所拥有的每只股票的名字以及每只股票的数量。使用一个名为portfolio的对象来保存这些信息,该对象为每只股票设置一个属性,其属性名就是这只股票的名字,属性值就是这只股票的数量。(该代码来自《JavaScript: The Definitive Guide》)
<span style="font-size:16px;">//动态设置属性
var stock_name = get_stock_name_from_user();
var shares = get_number_of_shares();
portfolio[stock_name] = shares;</span>
<span style="font-size:16px;">//获得股票总值
var value = 0;
for(stock in portfolio){
value += get_share_value(stock) * portfolio[stock];
}</span>
不用for/in循环就无法编写这行代码,因为事先并不知道股票的名字。这是从名为portfolio的关联数组中提取这些属性名的唯一方法。
分享到:
相关推荐
在JavaScript中,数组和对象是两种非常基础且重要的数据结构,它们被广泛应用于各种场景,如数据存储、逻辑处理和对象表示。这篇文章将深入探讨这两种数据类型,以及相关的操作和工具。 **一、数组** 数组在...
总结一下,JavaScript中的关联数组通常通过对象实现,而不是数组。数组和对象有明显的区别: 1. **数组**: - 使用数字索引,从0开始。 - 有内置的`length`属性,表示元素的数量。 - 支持数组方法,如`push`, `...
还注明了该对象或数组的父对象用户同样可能需要参考Online Companion中的超级文本Object Hierarchy页面(http://www.netscapepress.com/support/javascript/10-9.htm),以便了解这些对象之间是如何相互关联的。...
在 Javascript 中,二维数组的遍历是一种非常常见的操作。二维数组,即多维数组的特殊情况,是指每个元素也是一个数组的数组。这种数据结构在实际应用中非常常见,例如,在表单处理、数据分析等领域。今天,我们将...
在JavaScript中,数组是一种常用的数据结构,用于存储一系列的值。有时我们可能需要根据特定条件或索引从数组中删除元素。本篇文章将详细介绍几种在JavaScript中删除数组元素的方法,帮助开发者更好地理解和应用这些...
尽管数组在概念上与对象不同,但在JavaScript中,数组也被视为一种特殊的对象,其索引被视为属性。 1. 获取对象的键(keys)和值(values) 在JavaScript中,我们可以使用`for...in`循环遍历对象的所有可枚举属性...
以上就是JavaScript中数组对象的一些主要方法,熟练掌握这些方法能极大地提升你在处理数组数据时的效率和代码的简洁性。在实际编程中,根据具体需求灵活运用这些方法,可以实现各种复杂的数组操作。
2. 对象数组:数组中存储的是对象,常用于结构化数据,如记录用户信息的数组。 3. 键值对:数组的索引与对象的键相似,但数组的索引是有序的,而对象的键通常是无序的。 四、高级特性 1. 解构赋值:允许从数组或...
这与数组中设置的`undefined`值是有区别的,因为在JavaScript中,数组实际上是以数字为键的对象,所以通过`in`运算符检查数组是否存在特定索引时,连续数组和不连续数组的行为是不同的。 ```javascript console....
在JavaScript中,数组对象Array是用于存储一组有序的数据集合,它可以包含任意类型的数据,如数字、字符串、对象等。Array对象提供了丰富的内置方法和属性,使得对数组的操作变得简单且高效。本文将深入探讨...
我们交换数组可以实现元素上下移动了,这个效果我们在表格或以前排序算法中都会用到,下面来看一个JavaScript下实现交换数组元素上下移动例子 在写项目的时候,要实现一个数组记录上下移动的示例。写起来也没有没...
尽管在JavaScript中,关联数组这一术语没有被官方明确地定义,但在实际应用中,人们通常会通过使用对象(Object)来模拟关联数组的行为,因为对象可以使用字符串作为属性名。 关联数组通常指的是数组中每个元素都...
JavaScript数组对象方法.xmind
在JavaScript中,获取数组的最大值和最小值是常见的操作,特别是在数据分析、数据处理或界面动态更新等场景。这里我们将详细探讨如何使用JavaScript实现这个功能。 首先,我们可以使用内置的Math对象中的`Math.max...
这涉及到JavaScript中的数组遍历、元素比较以及数组的删除操作等核心知识。通过具体示例,我们学习了如何编写一个函数来实现上述功能,并且通过在线HTML/CSS/JavaScript代码运行工具验证了代码的正确性。 首先,...
JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)...
### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...
在JavaScript中,类数组对象并不是真正的数组,但是它们看起来和数组很相似,因为它们也有索引和length属性。类数组对象包括但不限于Arguments对象(函数调用时传入的参数集合)、HTMLCollection(如document....
JavaScript中的数组和对象是两种非常基础且常用的数据结构。它们在编程中扮演着重要的角色,尤其是在处理和组织数据时。本文将深入探讨一维数组、多维数组以及对象的混合使用方法。 首先,一维数组是最基本的数组...