【问题标题】:javascript multidimensional Array and associative arrayjavascript多维数组和关联数组
【发布时间】:2011-08-15 04:13:23
【问题描述】:

我是 javascript 的新手,有人告诉我,他说“严格来说,javascript 没有多维数组和关联数组”。但在一本书中,我看到了以下内容

var my_cars=Array();
my_cars["cool"]="Mustang";

$a=Array(Array(0,1),2);

所以他的意见是错误的?我说的对吗?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    JavaScript 有数组,它们的元素可以是其他数组。

    但是,JavaScript 有 Objects 属性,而不是关联数组。

    Buy a better book.

    1. []Array() 要好得多。另外,为什么不显式实例化 Array 对象,然后依靠 Array 返回一个新对象?
    2. 示例是在Array 上设置属性cool
    3. 为什么是$a 印记?为什么又没有new 运算符了?

    【讨论】:

    【解决方案2】:

    对Javascript多维数组的所有解释似乎都很复杂,经过近一个小时的研究,我遇到了这个简单的例子:

    var myArray = new Array();
    myArray['row1'] = { 'col1':'BLARGH!!!', 'col2':'HONK!!!!' }
    myArray['row2'] = { 'col1':'FOO!!!', 'col2':'BAR!!!!' }
    myArray['row3'] = { 'col1':'FOUR!!!', 'col2':'GREGS!!!' }
    
    document.write(myArray['row2']['col1'] + " - " + myArray['row3']['col2']);
    //will output: FOO!!! - GREGS!!
    

    我在这里找到它:http://moblog.bradleyit.com/2009/06/create-multidimensional-associative.html

    【讨论】:

    • 感谢您的提及,太好了!我对它进行了更多测试,这是非关联的方法:var myArray = new Array(); myArray[0] = {0:1}; alert(myArray[0][0]);
    【解决方案3】:

    这行:my_cars["cool"]="Mustang"; 实际上并没有向数组中添加值。它实际上是为对象my_cars 添加一个新的属性和值。以下代码也同样适用:

    var my_cars = new Function();
    my_cars["cool"]="Mustang";
    alert(my_cars["cool"]);
    
    var c = new Object();
    c["cool"]="Corvette";
    alert(c["cool"]);
    

    要了解其工作原理,您可以查看my blog post on arrays and maps

    顺便说一句,正如@alex 所说,买一本新书。

    【讨论】:

      猜你喜欢
      • 2015-11-15
      • 2018-10-14
      • 2013-01-25
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      相关资源
      最近更新 更多