Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.07.2018, 10:20
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Удаление дубликатов и пустых элементов в массиве
Ребята, подскажите пожалуйста как удалить из массива дубликаты и пустые элементы:

(15) [{…}, {…}, {…}, {…}, {…}, empty × 5, {…}, {…}, {…}, {…}, {…}]

0: {src: "images/1.jpg", thumb: "images/1.jpg"}
1: {src: "images/2.jpg", thumb: "images/2.jpg"}
2: {src: "images/3.jpg", thumb: "images/3.jpg"}
3: {src: "images/4.jpg", thumb: "images/4.jpg"}
4: {src: "images/5.jpg", thumb: "images/5.jpg"}

10:{src: "images/1.jpg", thumb: "images/1.jpg"}
11:{src: "images/2.jpg", thumb: "images/2.jpg"}
12:{src: "images/3.jpg", thumb: "images/3.jpg"}
13:{src: "images/4.jpg", thumb: "images/4.jpg"}
14:{src: "images/5.jpg", thumb: "images/5.jpg"}
length:15
Ответить с цитированием
  #2 (permalink)  
Старый 04.07.2018, 10:25
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Попробуйте так:
const index = {};
list = list.filter(item => {
    return (!item.src || !!index[item.src]) ? false : index[item.src] = true;
});
Ответить с цитированием
  #3 (permalink)  
Старый 04.07.2018, 10:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

s24344,
откуда это на клиент поступает?
Ответить с цитированием
  #4 (permalink)  
Старый 04.07.2018, 10:42
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Изначально было определенное количество dom элементов. В цикле через условие в итоге осталось десять элементов (<div><img src="" />)</div>). Итерация было 15, так как элементов изначально length было 15. На каждой итерации, я произвел следующее действие:
arr[i] = {
	'src': images[i].querySelector('img').getAttribute('src'),
	'thumb': images[i].querySelector('img').getAttribute('src')
}

В итоге получился массив, который я описал выше. Собственно мне нужно было убрать из него дубликаты и пустые элементы.
Ответить с цитированием
  #5 (permalink)  
Старый 04.07.2018, 10:47
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Спасибо большое.
Ответить с цитированием
  #6 (permalink)  
Старый 04.07.2018, 11:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от s24344
Изначально было определенное количество dom элементов.
Это что статическая страница с жестким кодом "от ручек"? Ну в этом случае тем более не должно быть дубликатов. А если все таки сервер это отдает клиенту, то почему он отдает дубликаты, с которыми должен бороться клиент?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление и восстанавелние элементов (jquery) saper333 Общие вопросы Javascript 12 26.11.2015 15:23
Удаление и восстанавелние элементов (jquery) saper333 Общие вопросы Javascript 5 23.11.2015 15:50
Массивы. Динамическое удаление элементов userbanderas Элементы интерфейса 2 06.01.2012 23:29
Удаление элементов через splice. возможно ли оптимизировать? Storan Общие вопросы Javascript 0 01.10.2011 21:16
Уникальность элементов в массиве - как? .andreev Общие вопросы Javascript 2 14.11.2010 15:03