2015-08-11 1 views
0

У меня есть:Dynamic Key Value массив с несколькими значениями в Javascript

var data = [];

Я хочу, чтобы динамически создать массив строк, как это:

for(var i=0; i < files.length; i++){ 
    data[i].part1 = "abc"; 
    data[i].part2 = "def"; 
    data[i].part3 = "ghi"; 
} 

Возможно ли это? Я попробовал его и он жаловался на «Невозможно установить свойство„часть1“неопределенных»

Тогда я хочу, чтобы отсортировать массив данных по ч.1 значениям так:

data[0] = {3,a,b}; 
data[1] = {1,a,b}; 
data[2] = {5,a,b}; 

становится:

data[0] = {1,a,b,c}; 
data[1] = {3,a,b,c}; 
data[2] = {5,a,b,c}; 

В Поэтому я хочу, чтобы это сделать, потому что после того, как-то сделано, мне нужно изменить

данные в [я] .part2

что-то еще после сортировки!

ответ

2

Вы можете сделать это:

for (var i = 0; i < files.length; i++) { 
    data[i] = {}; 
    data[i].part1 = "abc"; 
    data[i].part2 = "def"; 
    data[i].part3 = "ghi"; 
} 

установить data[i] на пустой объект, а затем заполнить его по частям. Или

for (var i = 0; i < files.length; i++) { 
    data[i] = { 
     part1: "abc", 
     part2: "def", 
     part3: "ghi" 
    }; 
} 

установить data[i] до полного объекта сразу.


Я не понимаю data[0] = {3,a,b}; часть, хотя: {3,a,b} ошибка синтаксиса и не похож на свой другой код (который не упоминает 3 или a или b).

Но вы можете легко сортировать массив объектов по конкретной собственности:

data.sort(function (a, b) { 
    return (a.part1 > b.part1) - (a.part1 < b.part1); 
}); 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort См подробности.

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

  • Нет связанных вопросов^_^