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);


Но почему-то удаляет из массива все элементы, кроме первого.
  • Вопрос задан
  • 172 просмотра
Решения вопроса 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 
  //......
  //......
      
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@VitalyChaikin
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы