Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以下数组之间的差异?_Javascript_Json_Arrays - Fatal编程技术网

Javascript 以下数组之间的差异?

Javascript 以下数组之间的差异?,javascript,json,arrays,Javascript,Json,Arrays,这是阵列1 var array_1 = ["51b59c162de88", [ ["parties", 0.0, 0.011] ]] ["51b59c1b4f52f", [ ["star-speak", 0.0, 0.006], ["parties", 0.0, 0.011] ]] 这是阵列2 var array_2 = [{ key: "51b59c162de88", values: ["parties", 0.0, 0.011]] }, {

这是阵列1

var array_1 = ["51b59c162de88", [
    ["parties", 0.0, 0.011]
]]
["51b59c1b4f52f", [
    ["star-speak", 0.0, 0.006],
    ["parties", 0.0, 0.011]
]]
这是阵列2

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文件的样子

您的两个数组都有拼写错误,会产生错误

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]]]
    }
];

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

如果我们假设已解析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];
    });
});
例如,如何将这些打印到文档:

如果JSON没有被压缩,避免使用键值对象会大大减少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%。对于较长的密钥,情况更糟。

这不是JSON,你从哪里得到错误信息?@Esailija:我随身携带一个JSON文件,其中包含所有这些数据!!!我可以把它发给你。不,谢谢:D也许把你的实际JSON而不是javascript放在这个问题上吧?它有超过10k的值,太大了!!!大约4.5mb…我应该怎么做…把它的一部分放进去???尽可能少的量仍然正确地表示问题我刚刚更新了我的问题!!!我已经提供了一个链接…这就是我的阵列的样子!!!如何访问这些数组。为了理解,我简化了上面的问题