`

「转载」JavaScript中关联数组对象

 
阅读更多
原文地址: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中,数组和对象是两种非常基础且重要的数据结构,它们被广泛应用于各种场景,如数据存储、逻辑处理和对象表示。这篇文章将深入探讨这两种数据类型,以及相关的操作和工具。 **一、数组** 数组在...

    JavaScript 对象与数组参考大全

    还注明了该对象或数组的父对象用户同样可能需要参考Online Companion中的超级文本Object Hierarchy页面(http://www.netscapepress.com/support/javascript/10-9.htm),以便了解这些对象之间是如何相互关联的。...

    JavaScript如何删除数组元素!

    在JavaScript中,数组是一种常用的数据结构,用于存储一系列的值。有时我们可能需要根据特定条件或索引从数组中删除元素。本篇文章将详细介绍几种在JavaScript中删除数组元素的方法,帮助开发者更好地理解和应用这些...

    JavaScript 中有关数组对象的方法(详解)

    以上就是JavaScript中数组对象的一些主要方法,熟练掌握这些方法能极大地提升你在处理数组数据时的效率和代码的简洁性。在实际编程中,根据具体需求灵活运用这些方法,可以实现各种复杂的数组操作。

    JavaScript对象与数组参考大全

    2. 对象数组:数组中存储的是对象,常用于结构化数据,如记录用户信息的数组。 3. 键值对:数组的索引与对象的键相似,但数组的索引是有序的,而对象的键通常是无序的。 四、高级特性 1. 解构赋值:允许从数组或...

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

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

    JavaScript中的数组特性介绍.docx

    这与数组中设置的`undefined`值是有区别的,因为在JavaScript中,数组实际上是以数字为键的对象,所以通过`in`运算符检查数组是否存在特定索引时,连续数组和不连续数组的行为是不同的。 ```javascript console....

    JavaScript数组对象Array案例.pdf

    在JavaScript中,数组对象Array是用于存储一组有序的数据集合,它可以包含任意类型的数据,如数字、字符串、对象等。Array对象提供了丰富的内置方法和属性,使得对数组的操作变得简单且高效。本文将深入探讨...

    JavaScript【数组和对象(1)】

    数组和对象是JavaScript中的基本数据结构,它们用于存储和处理数据。本篇将详细阐述JavaScript中的数组和对象。 一、数组 数组是有序的数据集合,可以存储任意类型的值,包括数字、字符串、对象等。在JavaScript中...

    JavaScript中的关联数组问题

    尽管在JavaScript中,关联数组这一术语没有被官方明确地定义,但在实际应用中,人们通常会通过使用对象(Object)来模拟关联数组的行为,因为对象可以使用字符串作为属性名。 关联数组通常指的是数组中每个元素都...

    JavaScript数组对象方法.xmind

    JavaScript数组对象方法.xmind

    JavaScript如何获取数组最大值和最小值

    在JavaScript中,获取数组的最大值和最小值是常见的操作,特别是在数据分析、数据处理或界面动态更新等场景。这里我们将详细探讨如何使用JavaScript实现这个功能。 首先,我们可以使用内置的Math对象中的`Math.max...

    关于JavaScript中的关联数组分析

    JavaScript中的关联数组,也常被称为对象(Object),是语言特性的一种独特表现形式,它允许我们以键值对的形式存储数据。这种数据结构不同于传统的索引数组,它不需要连续的整数索引,而是使用字符串作为键来标识和...

    JavaScript splice 数组操作(删除,插入)

    JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)...

    JavaScript数组对象JSON学习笔记

    ### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...

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

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

    Javascript的常规数组和关联数组对比小结

    在JavaScript中,常规数组通常指的是可以使用数字索引(整数)来访问元素的数组,而关联数组则指的是可以通过字符串或其他类型的值作为键来访问元素的数组。 在JavaScript中,所有类型的数组都是通过对象来实现的,...

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

    JavaScript中的数组和对象是两种非常基础且常用的数据结构。它们在编程中扮演着重要的角色,尤其是在处理和组织数据时。本文将深入探讨一维数组、多维数组以及对象的混合使用方法。 首先,一维数组是最基本的数组...

    JavaScript中的Array 对象(数组对象)_.docx

    在JavaScript中,Array对象是处理一组有序数据的关键结构。它提供了丰富的功能,使得在脚本中操作和管理数据集合变得简单。以下是对标题和描述中所提到的JavaScript Array对象的详细解释: 1. 创建Array对象: - ...

Global site tag (gtag.js) - Google Analytics