2013-03-24 2 views
-1

Как изменить Javascript формат массива:Изменить массив Форматирование

var sample_data = ["af","16.63","al","11.58","dz","158.97"]; 

этот формат объекта:

var sample_data = {"af":"16.63","al":"11.58","dz":"158.97"}; 
+1

Какой язык? Если это JavaScript, у вас есть синтаксическая ошибка в первом фрагменте. Это должно быть 'var sample_data = [" af "," 16.63 "," al "," 11.58 "," dz "," 158.97 "];' – Oybek

+0

Язык ??? Добавьте теги языка/технологии. – Oybek

+0

Я изменил тип скобки на [] –

ответ

1
var d = {}; // a temporary object 
for (var i = 0; i < sample_data.length; i += 2) { 
    // iterate over sample_data with a step width of 2 
    // and set the the data in the temp. object 
    d[sample_data[i]] = sample_data[i+1]; 
} 
sample_data = d; 
1

код для него будет выглядеть следующим образом

var sample_data = ["af","16.63","al","11.58","dz","158.97"]; 
var tmp = sample_data; 
sample_data = {}; 
for (var i = 0; i < tmp.length/2; i++) 
    sample_data[tmp[i * 2]] = tmp[i * 2 + 1]; 

EDIT

Имейте в виду.

var arr = []; // This is an array 
var obj = {}; // This is an object! Not array. 
2

Может использовать Array.shift сделать это тоже. Не знаю, как он сравнивается с другими методами скорости.

var sample_data = ["af","16.63","al","11.58","dz","158.97"]; // source 

var data = sample_data.slice(); // clone the data 

sample_data = {}; 

while (data.length > 1) { 
    sample_data[data.shift()] = data.shift() || null; 
} 
Смежные вопросы