Работа со списками, удалить лишнее
Всем привет,
существует такой вопрос: У меня есть список объектов data = [ {id: '1000', name: 'name1', url:''}, {id: '1001', name: 'name2', url:''}, {id: '1002', name: 'name3', url:''}, {id: '1000', name: 'name4', url:''} ] и мне необходимо удалить лишние объекты, у каких одинаковый АйДи... Как лучше всего это сделать ? Большое спасибо. |
Цитата:
1. Пробежаться по массиву 2. Добавлять елемент в новый массив, если такой ИД не был записан в "промежуточный" объект и запоминать ИД в "промежуточный" объект |
Не идеально конечно, но работает.
var newData = []; for (var i = 0; i < data.length; i++) { var item = data[i].id; var add = true; for (var n = 0; n < newData.length; n++) { if (data[i].id == newData[n].id) { add = false; } } if (add) { newData.push(data[i]); } } Рабочий пример тут. Результат смотрите в консоли. |
antonM, гонять по массивам всякий раз не очень хороший подход...
Более удобно пробежаться один раз, "все выяснить"... А потом просто этим "пользоваться". Я использовал такие абстрактные слова, т.к. реализация сильно зависит от языка реализации. В JS для этого можно использовать объекты... |
Ну я не претендовал на best of the best :) в начале поста написано.
Вы бы привели свой вариант. |
Цитата:
Само описание алгоритма я дал выше... |
ksa, тогда тыкните мне ссылку на букварский подход. Буду образовываться.
|
antonM, что именно тебе показать? :)
Как добавлять свойства в объект? http://javascript.ru/tutorial/object...vlenie-svoystv Как проверять есть такое свойство в объекте или нет? http://javascript.ru/typeof |
Часовой пояс GMT +3, время: 00:34. |