Удаление вхождения элемента происходит более n раз
Мне нужно было бы стереть значение, если оно превышает число n, например:
sortN([2, 3, 3, 3, 4, 4], 1);-> [2, 3, 4]
Другими словами, число вхождений не должно превышать n. Я пытался решить эту проблему с помощью различных подходов, но до сих пор не могу получить желаемый результат
Что я уже пробовал:
Самое близкое, что я получил, - это подсчитать количество вхождений каждого элемента, например:
function compressArray(original) { var compressed = []; // make a copy of the input array var copy = original.slice(0); // first loop goes over every element for (var i = 0; i < original.length; i++) { var myCount = 0; // loop over every element in the copy and see if it's the same for (var w = 0; w < copy.length; w++) { if (original[i] == copy[w]) { myCount++; delete copy[w]; } } if (myCount > 0) { compressed.push(original[i], myCount); } } return compressed; };
Это действительно полезно? Должен ли я использовать другой подход?