需要帮助构建复杂的JS对象

时间:2015-04-20 01:45:47

标签: javascript arrays multidimensional-array

我试图在JavaScript中构建一个数组,但我不确定这样做的正确方法,或者这种类型的数组是否可行...

假设我有一个键,用于表示阵列中的每个项目,以' a'并以' z'结尾。对于每个项目,数组键将与另一个多维数组对应。这些新的多维数组是一系列坐标(x和y)。原始数组中的每个项目都可以有多组坐标。例如:

enter image description here

如何使用Javascript构建这样的数组?什么是正确的语法?

2 个答案:

答案 0 :(得分:3)

只需在列表中添加另一个可能的选项,与@ SMcCrohan的答案相同,混合对象和数组。

var coords = {
    a: [{
            x: 20,
            y: 15
        },
        {
            x: 25,
            y: 17
        }],
    b: [{
            x: 10,
            y: 30
        }],

    ....
};

这假设您始终使用坐标xy,这意味着您可以像这样访问值:

var value1 = coords.a[1].x; // 25
var value2 = coords.b[0].y; // 30

答案 1 :(得分:2)

对于您提供的数据:

var arr = {
  a: [[20,15],[25,17],[10,45]],
  b: [[10,33],[12,2],[14,9],[72,103],[88,12]],
  c: [[2,2],[41,21]],
  d: [[0,0],[21,2],[44,44],[19,99],[1,1],[100,100]],
  e: [[1,1],
  f: [[3,40],[41,86]]
}

你想要的第一个结构,一个键控数组,不是JavaScript中的数组 - 它是一个对象。对象包含键值对。在这种情况下,值是数组,这些数组中的对象本身就是数组。

如果你来自另一种定义'常规'多维数组的语言,那么这里需要注意的重要一点是,没有期望或保证这个结构的'行'长度都相同。