Как получить отличные значения от JSON в JQuery - PullRequest
8 голосов
/ 05 февраля 2009

У меня есть JQuery-запрос JSON, и в этих данных JSON я хочу иметь возможность сортировать по уникальным значениям. так что у меня

{"people":[{"pbid":"626","birthDate":"1976-02-06","name":'name'},{"pbid":"648","birthDate":"1987-05-22","name":'name'},.....

Итак, у меня есть это

 function(data){
          $.each(data.people, function(i, person){
               alert(person.birthDate);

}

но я в полной растерянности относительно того, как эффективно получать только уникальные даты рождения и сортировать их по годам (или любым другим способом по любым другим личным данным).

Я пытаюсь сделать это, и быть эффективным в этом (я надеюсь, что это возможно).

Спасибо

Ответы [ 3 ]

9 голосов
/ 05 февраля 2009

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

function(data) {
    var birthDates = {};
    var param = "birthDate"
    $.each(data.people, function() {
        if (!birthDates[this[param]])
            birthDates[this[param]] = [];   
        birthDates[this[param]].push(this);
    });

    for(var d in birthDates) {
        // add d to array here
        // or do something with d
        // birthDates[d] is the array of people
    }
}
6 голосов
/ 05 февраля 2009
function(data){
    var arr = new Array();
    $.each(data.people, function(i, person){
        if (jQuery.inArray(person.birthDate, arr) === -1) {
            alert(person.birthDate);
            arr.push(person.birthDate);
        }
    });
}
3 голосов
/ 06 февраля 2009

Вот мой дубль:

function getUniqueBirthdays(data){
    var birthdays = [];
    $.each(data.people, function(){
        if ($.inArray(this.birthDate,birthdays) === -1) {
            birthdays.push(this.birthDate);
        }
    });
    return birthdays.sort();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...