Хватит значит хватит!

Алиса и Боб были в отпуске. Они оба сделали много фотографий мест, где побывали, и теперь хотят показать Чарли всю свою коллекцию. Однако Чарли эти сеансы не нравятся, так как мотив обычно повторяется. Ему не нравится смотреть на Эйфелеву башню 40 раз. Он говорит им, что будет сидеть во время сеанса только в том случае, если они покажут один и тот же мотив не более N раз. К счастью, Алиса и Боб могут закодировать мотив в виде числа. Можете ли вы помочь им удалить числа так, чтобы их список содержал каждое число только до N раз, не меняя порядок?

Задача

Имея список и число, создайте новый список, содержащий каждое число lst не более N раз без переупорядочения. Например, если входное число равно 2, а входной список — [1,2,3,1,2,1,2,3], вы берете [1,2,3,1,2], отбрасываете следующий [ 1,2], поскольку это приведет к тому, что 1 и 2 будут в результате 3 раза, а затем взять 3, что приведет к [1,2,3,1,2,3]. Со списком [20,37,20,21] и числом 1 результатом будет [20,37,21].

function deleteNth(arr,n){
  const result = []
  for (const key of arr) {
    const exist = result.filter(item => item === key).length
    if (exist && exist === n) {
      continue
    } else {
      result.push(key)
    }
  }
  return result
}