Devraj Kapdi Ответов: 2

Как удалить дубликаты узлов из JSON в JQuery


У меня есть следующая строка

[{"text":"menu1","parent":"#","id":"128102"},{"text":"menu1.1","parent":"128102","id":"128103"},{"text":"menu1.1","parent":"128102","id":"128103"}]

и я хочу этого так же, как

[{"text":"menu1","parent":"#","id":"128102"},{"text":"menu1.1","parent":"128102","id":"128103"}]

в jQuery

2 Ответов

Рейтинг:
16

Kornfeld Eliyahu Peter

Для этого ничего не встроено...вы должны запустить цикл для проверки дубликатов...
Вот вам пример для начала...

var json = [
    {"text":"menu1","parent":"#","id":"128102"},
    {"text":"menu1.1","parent":"128102","id":"128103"},
    {"text":"menu1.1","parent":"128102","id":"128103"}
];

var ids = [];
var clean = [];

$.each(json, function(index, value) {
    if($.inArray(value.id, ids) == -1)
    {
        ids.push(value.id);
        clean.push(value);
    }
});

Массив ids является помощником для проверки дубликатов и содержит только уникальные идентификаторы из исходного массива, где clean будет содержать фактический массив без дубликатов...


Devraj Kapdi

Спасибо тебе, Питер. я уже пробовал сделать то же самое, но мне это не помогло . вы решили мою проблему. спасибо тебе.

Kornfeld Eliyahu Peter

Пожалуйста...

Hafiz Muhammad Farooq

Питер, идеальное решение для удаления дубликатов. Спасибо

Рейтинг:
1

keyur soni

функция removeDuplicates(json_all) {
var arr = [],
коллекция = [];

$.каждый(json_all, функция (ИНДЕКС, значение) {
если ($.inArray(стоимость.идентификатор ОБР) == -1) {
ОБР.толчок(стоимость.идентификатор);
collection.push(значение);
}
});
возврат коллекции;
}


CHill60

Ничем не отличается от решения 1, опубликованного 5 лет назад. Копирование работы других участников и размещение ее как своей собственной может привести к закрытию вашего аккаунта. Я предлагаю вам удалить этот пост.