小编Rob*_*uri的帖子

使用splice()更改数组

我正在尝试编写一个函数,给定一个数组和n,返回数组重复不超过n次的元素.我无法改变数组的顺序.

下面是我到目前为止的代码.令我困惑的是,它适用于给定数组中的大多数元素,但不适用于其他元素.我试图找到代码不起作用的元素的押韵或原因.

function deleteNth(arr,n){
  arr.forEach(function (item, index) {
    var count = 0;
    for (var i = 0; i < arr.length; i++) {
      if (arr[i] === item) {
        count++;
      while (count > n) {
       var remove = arr.lastIndexOf(item);
       arr.splice(remove, 1);
       count--;
      }
    }
  }
});
  return arr;
}


var x = deleteNth([7, 26, 21, 41, 43, 2, 26, 24, 10, 26, 10, 10, 24, 35, 35, 
35, 43, 26, 41, 7, 24, 24, 21, 24, 10, 35, 10, 7, 24, 7, …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

6
推荐指数
1
解决办法
290
查看次数

标签 统计

arrays ×1

javascript ×1