以下数组之间的区别?

时间:2013-06-26 10:18:00

标签: javascript json arrays

这是 ARRAY1

var array_1 = ["51b59c162de88", [
    ["parties", 0.0, 0.011]
]]
["51b59c1b4f52f", [
    ["star-speak", 0.0, 0.006],
    ["parties", 0.0, 0.011]
]]

这是 ARRAY2

var array_2 = [{
    key: "51b59c162de88",
    values: ["parties", 0.0, 0.011]]
},
    {
        key: "51b59c162de94",
        values: [
            ["star-speak", 0.0, 0.006],
            ["parties", 0.0, 0.011]
        ]
    }, ];
  • 阵列1和阵列2之间的确切区别是什么。

  • 如何访问他们的数据?

我是json的新手!!!!

这是我原来的json文件的样子!!!! http://jsfiddle.net/rjZxJ/

2 个答案:

答案 0 :(得分:1)

如果我们假设已解析的JSON,我们有:

var a = [
    ["51b59c1bbae1c", [["parties", 0.0, 0.011]]],
    ["51b59c1b4f52f", [["star-speak", 0.0, 0.006], ["parties", 0.0, 0.011]]],
    ["51b59c2635997", [["fashion", 0.002, 0.006], ["parties", 0.0037, 0.011], ["royal-challenge", 0.002, 0.006]]],
    ["51b59c157b564", [["parties", 0.0, 0.028], ["indulge", 0.0, 0.006], ["live-responsibly", 0.0, 0.006], ["fashion", 0.0, 0.006]]]
]

然后你可以迭代元素:

a.forEach( function( element ) {
    var id = element[0];
    var items = element[1];
    items.forEach( function item ) {
        var name = item[0];
        var float1 = item[1];
        var float2 = item[2];
    });
});

例如,如何将这些文件打印到文档:http://jsfiddle.net/9VyGM/

如果未压缩键值对象,则避免键值对象会大大减少JSON大小,因为键总是在整个地方重复。

在JSON中考虑类似5个3D点的数组:

[
    {"x": 0.5, "y": 0.5, "z": 0.5},
    {"x": 0.5, "y": 0.5, "z": 0.5},
    {"x": 0.5, "y": 0.5, "z": 0.5},
    {"x": 0.5, "y": 0.5, "z": 0.5},
    {"x": 0.5, "y": 0.5, "z": 0.5}
]

比较大小,如果您只是使用数组并在代码中达成协议 代表什么:

//The code will know that x is 0th element, y is 1th element
//and z is 2th element
[
    [0.5, 0.5, 0.5],
    [0.5, 0.5, 0.5],
    [0.5, 0.5, 0.5],
    [0.5, 0.5, 0.5],
    [0.5, 0.5, 0.5]
]

即使使用x这样的短按键,你也可以看到它只有54%的大小。对于更长的按键,情况要糟糕得多。

答案 1 :(得分:0)

你的两个数组都有拼写错误并会产生错误!

Array1当前是一个(损坏的)字符串和数组数组,遵循以下模式:[str1, [[str2, str3, str4]], [str5, [str6, str7, str8], [str9, str10, str11]]]

Array2是一个对象数组:[obj1, obj2]

我怀疑你真正想要的是:

var array_1 = [
    [
        "51b59c162de88",
        ["parties", 0.0, 0.011]],
    ],
    [
        "51b59c1b4f52f",
        ["star-speak", 0.0, 0.006],
        ["parties", 0.0, 0.011]
    ]
];

- 这是一个数组数组,并且:

var array_2 = [
    {
        key: "51b59c162de88",
        values: [["parties", 0.0, 0.011]]
    },
    {
        key: "51b59c162de94",
        values: [["star-speak", 0.0, 0.006], ["parties", 0.0, 0.011]]]
    }
];

- 这是一个包含键字符串和值数组的对象数组。