`
bluceguy
  • 浏览: 6759 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

关于js中关联数组的使用问题

阅读更多

两个例子
function test1() {
var array1 = { "A":"a","B":"b","C":"c" };
for (key in array1) {  // 能够正常输出数组
       alert('=1=1=====' + key);
       alert('=1=2=====' + array1[key]);
    }
}
function test2() {
var array2 = new Array();
        array2["A"] = "a";
        array2["B"] = "b";
array2["C"] = "c";
        for (key in array2) {   // 在输出正确数组前,会先输出许多函数信息
         alert('==1=====' + key);
         alert('==2=====' + array2[key]);
    }
}

在test1中直接定义数组能够正常输出;而在test2中用Array 定义数组则会输出很多函数信息

后来发现:
第一个例子并不是数组而是创建了一个对象(javascript 里  {}不能称作数组,应该属于object类型 ),
循环输出的是这个对象的属性和值;

第二个例子是数组但是你把他当成一个对象来使用的
array2["A"]="a"其实就是array2.A="a";
而new Array 出来的是Array类型。
因为在数组的方括号里面只能填数字,所以它只是给array2添加了3个属性
分别是
array2.A="a"
array2.B="b"
array2.C="c"
虽然javascript 中任何类型都是object,但是Array 的实例中已经带有很多和array相关的实例方法。
例如 indexOf/slice/。。。。

而且循环都是用in来循环的,in的循环回输出这个对象的所有自定义属性
因此,才会发生test2中输出函数信息的情况。。。

鉴于这种情况,在定义时应尽量使用
var array2 = {};或var array2 = new Object();  的方式!
分享到:
评论

相关推荐

    js中动态创建关联数组的问题

    这里我们将深入探讨在JavaScript中动态创建和操作关联数组的问题。 首先,让我们分析给定的例子: 例子一: ```javascript var array1 = { "A": "a", "B": "b", "C": "c" }; for (key in array1) { // 能够正常...

    javascript中数组、对象

    对象是键值对的集合,可以看作是一种关联数组。创建对象的方式有以下几种: 1. 对象字面量: ```javascript var obj = {}; // 创建空对象 var obj = {name: 'Alice', age: 30}; // 创建包含属性的对象 ``` 2. ...

    JavaScript关联数组用法分析【概念、定义、遍历】

    本文实例讲述了JavaScript关联数组用法。分享给大家供大家参考,具体如下: 基本概念: “关联数组”是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了NULL)来索引...

    js中的关联数组与普通数组详解

    在关联数组中,键通常是字符串,而不仅仅是数字。例如,`var unPrivArr = [];`创建了一个空数组,然后`unPrivArr['1000']`被赋值为一个空数组,这实际上是将`1000`作为一个键,而不是索引。因为JavaScript数组也是...

    JavaScript中的索引数组、关联数组和静态数组、动态数组讲解

    数组分类: 1、从数组的下标分为索引数组、关联.../* 关联数组,指以非序数类型为下标来存取的数组 python中称为字典 */ var ary2 = {}; //存取时,以非序数(数字),这里是字符串 ary2[“one”] = 1; ary2[“two”]

    JavaScript中的关联数组问题

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

    关于JavaScript中的关联数组分析

    值得注意的是,尽管JavaScript数组可以使用数字下标,但在关联数组中,尝试通过数字下标访问元素可能会返回`undefined`,如`arr[0]`所示。这是因为关联数组中的元素并非按顺序存储,它们是基于键来查找的。 关联...

    全国城市js数组

    标题“全国城市js数组”指的是使用JavaScript编程语言创建的一个数据结构,这个数据结构包含了中国所有城市的省份和城市信息。在Web开发中,这样的数组通常用于实现动态的下拉列表框,用户可以选择不同的省份和城市...

    JavaScript 对象与数组参考大全

    JavaScript 对象与数组参考大全 ... array对象是Netscape Navlgator 3.0 beta 3中引入的一个新的对象,因而,它不能在Netscape 2.0中使用它是一个内置对象,而不是其它对象的属性。  属性 length 数组中的值个数

    IE9关联数组导致内存泄漏测试报告

    标题中的“IE9关联数组导致内存泄漏测试报告”指出了一个特定的问题,即在使用Internet Explorer 9(IE9)浏览器时,由于与关联数组(Array-like object)相关的编程技术,可能会引发内存泄漏问题。内存泄漏是指程序...

    JavaScript实现Array(数组)和Map

    这篇文章将深入探讨这两个概念,以及如何在实际开发中使用它们。 首先,Array是JavaScript中最基础的数据结构之一,它允许我们存储一组有序的元素。数组支持索引访问,这意味着我们可以通过索引来获取或修改数组中...

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

    - 关联数组(对象数组)使用任意类型的键,适合于存储具有特定标识的数据,如键值对。 - JavaScript数组的灵活性允许混合使用两种类型的数组,但需要注意`length`属性只反映整数索引的元素数量。 - 在JavaScript中,...

    JavaScript 实现Array(数组)和Map

    例如,可能包含一个自定义的`insertAt`方法,允许你在数组的任意位置插入元素,或者`removeByValue`方法,根据值来删除数组中的元素。这样的实现可以帮助你理解数组操作的底层逻辑,并且在某些特定场景下提供更灵活...

    js以对象为索引的关联数组

    总结,使用对象作为JavaScript关联数组的键可以提供一种独特的方式来存储和检索数据,特别是在需要根据特定对象属性进行查找时。然而,由于JavaScript将所有键视为字符串,所以在实际操作中需要注意对象的字符串化...

Global site tag (gtag.js) - Google Analytics