Вернуть подмножество объекта, используя jQuery CSV

Я использую jQuery CSV для анализа файла.csv на моем веб-сервере. У меня есть такая работа, используя демонстрационный файл со списком стран с дополнительными полями (Общее имя, Капитал, Код страны и т. Д.).

Оттуда я использую функцию поиска, найденную здесь: Jquery, как найти объект по атрибуту в массиве, чтобы вернуть совпадающие объекты из проанализированного файла.

Вот мой код до сих пор:

jQuery(document).ready(function($){                         
    $.ajax({
       type: "GET",
       url: "path/countrylist.csv",
       dataType: "text",
       success: function(data) {
       var data = $.csv.toObjects(data);
       console.log(data);

       var country = lookup(data, "Common Name", "Albania");
       $.each(country, function(i, val) {
           $("#albania").append(i + ": " + val + "<br/>");
       });
     });
  });

Это возвращает объект 'Albania', который я отображаю в div с идентификатором '#albania':

Sort Order: 2
Common Name: Albania
Formal Name: Republic of Albania
Type: Independent State
Sub Type: 
Sovereignty: 
Capital: Tirana
ISO 4217 Currency Code: ALL
ISO 4217 Currency Name: Lek
ITU-T Telephone Code: 355
ISO 3166-1 2 Letter Code: AL
ISO 3166-1 3 Letter Code: ALB
ISO 3166-1 Number: 8
IANA Country Code TLD: .al

Я застрял в том, что хочу отобразить подмножество этих данных из объекта страны. Например, я хочу отображать только общее имя, капитал и код страны.

Предполагая, что эти строки ключей / заголовков одинаковы для каждой страны, как я могу показать только эти значения? jQuery .slice() не работает, возможно, потому что это объект, а не массив (?).

Могу ли я выбрать подмножество по ключу / названию строки заголовка? Это может быть другой вариант, поскольку они не изменятся.

1 ответ

Решение

Это решено Мне нужно было использовать $.each() и точечную нотацию для определения конкретных ключей в объекте.

Вот мой рабочий код, который захватывает только общее имя и заглавную букву, а затем добавляет его к элементу div с идентификатором страны:

$.each( data, function( i, v ) {
var name = v.Common_Name.toLowerCase();
var country = v.Common_Name;
var capital = v.Capital;

    $("#" + name).append(
        "Name" + ": " + country + "<br/>" 
               + "Capital" + ": " + capital + "<br/>"
    );
});

Мой HTML:

<div class="countries clearfix">
    <div id="afghanistan" class="country"></div>
    <div id="albania" class="country"></div>
    <div id="algeria" class="country"></div>
    <div id="andorra" class="country"></div>
</div>

Результат:

Name: Afghanistan
Capital: Kabul

Name: Albania
Capital: Tirana

Name: Algeria
Capital: Algiers

Name: Andorra
Capital: Andorra la Vella
Другие вопросы по тегам