Сортировка по регионам, странам, городам из CSV в Javascript

#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.