Работа со списками, удалить лишнее
Всем привет,
существует такой вопрос: У меня есть список объектов
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, время: 05:20. |