2013-06-26 3 views
0

Это 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/

+0

Это не JSON, откуда вы получаете свою дезинформацию? – Esailija

+0

@Esailija: У меня есть json-файл со мной, у которого есть все эти данные !!! Я могу отправить его вам. –

+0

Нет, спасибо: D Может быть, вместо того, чтобы javascript поставить ваш реальный JSON в вопрос, а? – Esailija

ответ

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

- который представляет собой массив объектов, которые содержат ключевую строку и массив значений.

+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, если он не сжимается, потому что ключи всегда дублируются повсюду.

Рассмотрим то, как массив из 5 3D точек в формате JSON:

[ 
    {"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] 
] 

Вы может видеть, что это уже только 54% ​​от размера даже с короткими клавишами, такими как x. Ситуация намного хуже для более длинных клавиш.

Смежные вопросы