gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:36:04 25 4
gpt4 key购买 nike

使用纯 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com