#javascript #jquery #arrays #csv
#javascript #jquery #массивы #csv
Вопрос:
У меня есть плоский CSV-файл, который мне нужно прочитать, чтобы в итоге получилось 3 поля выбора для региона, страны, города.
Я использую jQuery для загрузки csv-файла и jQuery Csv plugin для возврата CSV-файла в виде массива.
Я перебрал массив и создал массив стран, но сейчас мне трудно добавить города в массив. Какая структура была бы лучшей? В идеале я просто хочу перебрать csv один раз и в итоге получить один вложенный массив, в котором есть регионы, затем страны и десять городов.
Относится ли это к ассоциативному массиву?
Спасибо за любую помощь.
Ян.
Ответ №1:
Да, ассоциативные массивы подходят для этого, что-то вроде этого:
var data = [
['europe', 'belgium', 'brussels'],
['europe', 'france', 'paris'],
['europe', 'france', 'lyon'],
['americas', 'usa', 'washington'],
['americas', 'usa', 'new-york'],
['americas', 'chile', 'santiago']
];
var tree = {},
l = data.length,
region, country;
while(l--){
region = data[l][0];
country = data[l][1];
tree[region] = tree[region] || {};
tree[region][country] = tree[region][country] || [];
tree[region][country].push( data[l][2] );
}
console.log(tree);
Комментарии:
1. Потрясающе, это помогло мне двигаться в правильном направлении, спасибо Mic.