@american6oy
ME JS

Как удалить из массива только уникальные элементы?

Добрый вечер и сразу к делу :)
Суть вопроса:
Есть массив, например [2,2,3,1,1], нужно написать функцию, в которая удалит уникальный элемент или же вернет новый массив без него, к выходу = [2,2,1,1].
Помогите хотя бы советом. Так как все мои попытки приводят максимум к тому, что возвращается массив в котором просто указаны какие элементы дубликаты - к примеру [2,1]
  • Вопрос задан
  • 311 просмотров
Решения вопроса 1
Например, так:
function countValues(elements, value) 
			{
				var cnt = 0;
				for (var i = 0; i < elements.length; i++) {
					if(elements[i] == value) {
						cnt++;
					}
				}
				return cnt;		
			}
			
			function removeUniqueValues(elements) 
			{
				var newElements = [], cnt = 0;
				for(var i = 0; i < elements.length; i++) {
					cnt = countValues(elements, elements[i]);
					if(cnt > 1) {
						newElements.push(elements[i]);
					}
				}
				return newElements;
			}
			
			var elements =  [2,2,3,1,1];
			var newElements = removeUniqueValues(elements);
			console.log(newElements);


Если массив заведомо числовой, то в функции countValues можно предварительно его отсортировать elements.sort(); и немного изменить цикл, тем самым сократив число итераций.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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