gpt4 book ai didi

JavaScript,循环遍历数组和参数 "object"

转载 作者:行者123 更新时间:2023-12-03 04:41:09 24 4
gpt4 key购买 nike

我无法理解这个问题,我正在使用 filter循环遍历数组并过滤掉所有作为参数传递的整数,我的参数数量不受限制。

但是当它要返回函数arguments的值时我被困在这里了对象,至少不止一次。

在我下面的代码中,显然它没有完全工作,因为我正在 for…in 循环中执行 return ,这是我不明白的地方我可以得到第二个循环,而无需将 i 重新初始化为 0...

function destroyer(arr) {
var args = arguments.length;
var arg0 = arguments[0];
var Nargs = Array.prototype.slice.call(arguments, 1);
var newArr = [];


newArr = arg0.filter(filtre);

/*Only the first argument is
filtered out,here it's the value "2",
but should filter out [2,3].
The expected result is [1,1]*/
console.log(newArr);
return newArr;

function filtre(e){

for (var i in Nargs){

return e !== Nargs[i];
}
}
}


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

希望这足够清楚,

感谢您的任何意见!

数学。

最佳答案

虽然 rg Three 提供的解决方案与您已有的解决方案非常相似,但我想提供一个利用现代浏览器的较新 ES6 功能的解决方案。如果您通过 Babel 运行此代码,它将生成与该解决方案中基本相同的代码,尽管它仍然需要一个填充程序来进行 includes 调用。

function destroyer(source, ...args) {
return source.filter(el => !args.includes(el));
}

说明:

...args 使用 spread operator将除第一个参数之外的所有参数放入名为 args 的数组中。

我们可以直接返回过滤后的数组,假设您不需要记录它并且这只是为了调试。

el => !args.includes(el) 是匿名 arrow function 。由于没有使用大括号,因此它将自动返回表达式的结果。

由于args是一个数组,我们可以直接使用Array.prototype.includes检查当前元素是否在要删除的参数中。如果它存在,我们希望将其删除,从而用 ! 反转返回值。另一种选择可能如下:el => args.includes(el) == false

关于JavaScript,循环遍历数组和参数 "object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43083917/

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