busidoway
@busidoway

Как удалить дубликаты из массива JavaScript?

Делаю загрузку изображений на сервер. На стороне клиента собираю данные о загружаемых файлах в массив и отправляю этот массив на сервер. Как удалить дубликаты из массива, в случае когда пользователь повторно загрузил некоторые файлы изображений? Или же заранее собирать только уникальные данные в массиве.

// загрузка изображения
var file_upload = $('#file_upload');
var arr_files = [];

file_upload.on('change', function(){
	
	if((file_upload[0].files).length !=0){
		$.each(file_upload[0].files, function(i, file){
			
			//добавление в массив
			arr_files.push(file);

		});
	}
		
	// Далее отправка через ajax 
	//......
	//......
			
});


Массив файлов выглядит примерно так:
60252a376199f710335803.jpeg

Нашел в интернете такое решение:

let set = new Set(arr_files.map(JSON.stringify));
let arr_files_uniq = Array.from(set).map(JSON.parse);


Но почему-то удаляет из массива все элементы, кроме первого.
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
busidoway
@busidoway Автор вопроса
Задача решена. Спасибо комментариям Вадим

// загрузка изображения
var file_upload = $('#file_upload');
var files_obj= {};

file_upload.on('change', function(){
  
  if((file_upload[0].files).length !=0){
    $.each(file_upload[0].files, function(i, file){
      
      //добавляем данные в созданный объект
      files_obj[file.name] = file;

    });
  }
    
  let arr_files = Object.values(files_obj);

  // Далее отправка через ajax 
  //......
  //......
      
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽
08 мар. 2021, в 08:37
3000 руб./за проект
08 мар. 2021, в 07:04
3000 руб./за проект
08 мар. 2021, в 06:23
12000 руб./за проект