javascript:从第二个数组中的数组中删除值

标签 javascript arrays

使用纯 javascript,从一个数组开始,我想通过删除与第二个数组中的任何值匹配的值来返回和数组。

我已经解决了这个问题,但我相信代码比实际需要的多。

我希望只使用 javascript 的更简洁或优雅的解决方案。

function removeValues(arr){
    array = arguments[0];
    args = Array.prototype.slice.call(arguments);
    len = arguments.length;
        filtered = array.filter(function(n){
            x = true;
            for (var i = 1; i < len; i++) {
                if (n == args[i]) { x = false; }
            }
            return x;
        });
    return filtered;
}

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

应该使用一个函数,该函数使用一个或多个附加参数中的值从第一个参数(数组)中删除值。

最佳答案

当您使用 filter 时function 不是使用循环所必需的,因为你已经在循环中了。使用 [].slice.call(arguments) 将参数转换为数组后,您可以使用 indexOf负责返回值在数组中的位置,如果值不存在,则返回-1,所以我们将取所有-1的结果>

您的代码也可以减少:

function removeValues(arr){
  return arr.filter(function(val){
    return [].slice.call(removeValues.arguments).slice(1).indexOf(val) === -1
  })
}

console.log(removeValues([1,2,3,1,2,3],2,3))


ES6 方法:使用Rest parametersArrow Functions

enter image description here

var removeValues = (arr, ...values) => arr.filter(val => values.indexOf(val) === -1)

关于javascript:从第二个数组中的数组中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352054/

相关文章:

javascript hackerranks sherlock 和数组性能问题

java - 我如何在Java中随机填充一个数组?

javascript - 如何阻止标签自动 trim 字符串后面的空格?

javascript - 如何使用 dagre d3.js(javascript 库)向有向图添加点击事件?

ios - 如何使用 swift 检查字符串值是否在数组中

php - fputcsv : Empty rows in csv file after each array

java - 如何使用java从文本文件中删除一行?

javascript - $this 在 AJAX 请求后失去焦点

javascript - 同时发布 Content-Type undefined 和 application/json

javascript - Cycle2 - 转到 : skipping