Объединение двух массивов для формирования объекта javascript

У меня есть два массива:

var columns = ["Date", "Number", "Size", "Location", "Age"];

var rows = [["2001", "5", "Big", "Sydney", "25"],["2005", "2", "Med", "Melbourne", "50"],["2012", "20", "Huge", "Brisbane", "80"]];

Я пытаюсь объединить их в объект javascript для каждого элемента в массиве строк. После этого я хочу чтобы поместить каждый объект в новый массив.

Например:

var newarray = [];

//'thing' should be the same structure for each row item
var thing = {
   "Date" : "2001",
   "Number" : "5",
   "Size":"Big",
   "Location":"Sydney",
   "Age":"25"
}

newarray.push(thing);

Я могу сделать это, когда знаю имена столбцов, но мне нужно иметь возможность хранить данные таким образом, когда имя столбца неизвестно - т.е. на основе индексов массива столбцов.

Я пробовал это раньше:

       for(var y = 0; y < rows.length; y++){

            for(var i = 0; i < columns.length; i++){
                 thing[columns[i]] = rows[i][i];
           }
              newarray.push(thing)
       }

Приведенный выше код снова и снова сохранял только первый элемент (в соответствии с rows.length).

Я не понимаю как объединить имена столбцов со строками для создания массива объектов. Тот факт, что «строки» содержат массивы, особенно сбивает с толку ..

21
задан tamarasaurus 13 February 2012 в 06:08
поделиться