javascript在数组过滤器内嵌套for循环

米哈(MihaŠušteršič)

我正在解决一个编码练习,遇到了一个有趣的问题。我试图通过参数过滤数组(我事先不知道会有多少个参数)。因此,函数的第一个参数始终是数组,然后是需要过滤的随机整数。

我想我可以通过在过滤器函数内嵌套一个for循环来解决此问题,但到目前为止,它仅按第一个参数进行过滤,而忽略第二个参数。这是由于使用return false/true吗?如果是这样,我该怎么用呢?

function destroyer(arr) {
  var output = [];
  for (var y = 1; y < arguments.length; y++) {
    output.push(arguments[y]);
  }

  function destroy(value) {
    for (var x = 0; x < output.length; x++) {
      if (value === output[x]) {
        return false;
      } else {
        return true;
      }
    }
  }
  return arr.filter(destroy);
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);

谢谢您的帮助

妮娜·斯科茨(Nina Scholz)

请将return truefor移至函数末尾,因为只有发现了不需要的值时,for循环才应停止。

function destroyer(arr) {
    var output = [];
    for (var y = 1; y < arguments.length; y++) {
        output.push(arguments[y]);
    }

    function destroy(value) {
        for (var x = 0; x < output.length; x++) {
            if (value === output[x]) {
                return false;
            }
        }
        return true;
    }
    return arr.filter(destroy);
}

document.write(destroyer([1, 2, 3, 1, 2, 3], 2, 3));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章