gpt4 book ai didi

javascript - 复制参数对象的子集,不使用显式循环

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:00:25 27 4
gpt4 key购买 nike

我有一个 JavaScript 函数,它接受两个必需参数和任意多个可选参数。

function myFunction(required1, required2) {
var more = [];
for (var i = 2; i < arguments.length; ++i)
more.push(arguments[i]);
// ...
}

现在,我喜欢在所有代码中强制执行一致的风格。因为我的网站使用 jQuery,而 jQuery 喜欢使用 $.each$.map在显式循环上,我想摆脱 myFunction 中的显式循环.但是,我不能使用 $.each$.map因为我不想复制整个参数列表,以免我执行以下操作:

var more = $.map(arguments, function(argument, index) {
return (index < 2) ? null : [argument];
});

这当然是一个非常糟糕的主意,因为测试是否 index < 2在每次迭代中都是不必要的。

我真的很想能够提取 arguments 的一个子集使用标准函数将对象放入新数组。但是,因为 arguments不是数组,我不能 slice

有没有其他方法可以将除前两个参数之外的所有参数提取到数组中,而不使用显式循环,并且不会降低效率?

最佳答案

使用 slice方法:

var optional_arguments = Array.prototype.slice.call(arguments, 2);

我们必须从 Array.prototype 中调用它,因为即使 arguments 是类数组,它实际上也没有 slice 方法。

关于javascript - 复制参数对象的子集,不使用显式循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901260/

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