使用扩展运算符我可以使用Math.max(... firstArr,... secondArr)获取两个数组的最大值,并获得正确的值,我试图不添加扩展运算符手动,我是试图通过创建函数自动添加,我试图在参数之前添加或传递扩展运算符。示例
var firstArr = [1,2,3,4,5];
var secondArr = [6,7,8,9];
function myFun() {
for(var i = 0; i <= arguments.length; i++) {
var resl = Math.max(...arguments[i]);
document.write("The maximum value is " + resl);
}
}
myFun(firstArr, secondArr);
它显示两个结果值:
第一个结果是:“最大值 5 ”
第二个结果将是:“最大值 9 ”
一次不比较两个阵列,请帮帮我。感谢。
答案 0 :(得分:3)
这听起来像你要做的是
function myFun(...arrays) {
const allValues = [].concat(...arrays);
return Math.max(...allValues);
}
console.log("The maximum value is " + myFun([1,2,3,4,5], [6,7,8,9]));
但是,我建议避免使用可能较大数据的扩展语法,并转到
function myFun(...arrays) {
return Math.max(...arrays.map(arr => Math.max(...arr)));
}
甚至更好
function myFun(...arrays) {
return arrays.map(arr => arr.reduce(Math.max)).reduce(Math.max);
}
答案 1 :(得分:2)
您似乎在说您希望函数将可变数量的单独数组作为参数,然后在任何这些数组中找到最大数字。
如果是这样,你可以说[].concat(...arguments)
创建一个新数组,其中包含来自作为参数的各个数组的所有值,然后使用spread运算符将该新数组传递给Math.max()
。 (你不需要循环。)
var firstArr = [1,2,3,4,5];
var secondArr = [6,7,8,9];
function myFun() {
var resl = Math.max(...[].concat(...arguments));
console.log("The maximum value is " + resl);
}
myFun(firstArr, secondArr);
&#13;
答案 2 :(得分:0)
你可以在函数声明中使用rest元素,将每个前面有spread元素的数组数组传递给函数参数并在函数中传播元素
function myFun(...arr) {
return Math.max.apply(Math, ...arr)
}
myFun([...firstArr, ...secondArr /*, ...nArr*/ ]);