JavaScript在数组中查找最大整数 函数最大四(arr){ var newArray=[]; 对于(var i=0;i

JavaScript在数组中查找最大整数 函数最大四(arr){ var newArray=[]; 对于(var i=0;i,javascript,Javascript,它不会像那样工作。Math.max需要单独的数字。您可以使用apply function largestOfFour(arr) { var newArray = []; for(var i =0; i <=arr.length-1; i++){ console.log(arr[i]); newArray[i] = Math.max(arr[i]); } console.log(newArray);

它不会像那样工作。
Math.max
需要单独的数字。您可以使用
apply

function largestOfFour(arr) {
    var newArray = [];
    for(var i =0; i <=arr.length-1; i++){
        console.log(arr[i]);
        newArray[i] = Math.max(arr[i]);
    }
    console.log(newArray);
              // You can do this!
    return newArray;
}

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

它不会那样工作。
Math.max
需要单独的数字。您可以使用
apply

function largestOfFour(arr) {
    var newArray = [];
    for(var i =0; i <=arr.length-1; i++){
        console.log(arr[i]);
        newArray[i] = Math.max(arr[i]);
    }
    console.log(newArray);
              // You can do this!
    return newArray;
}

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

您正在将一个数组传递给
Math.max
,并期望它返回该数组中的最大值

但是,
Math.max
返回其参数中的最大值。因此使用

function largestOfFour(arr) {
    return arr.map(function(subArr){
        return Math.max.apply(Math, subArr);
    });
}

您正在将一个数组传递给
Math.max
,并期望它返回该数组中的最大值

但是,
Math.max
返回其参数中的最大值。因此使用

function largestOfFour(arr) {
    return arr.map(function(subArr){
        return Math.max.apply(Math, subArr);
    });
}

如果你想达到极限,就这么做吧

arr.map(a => Math.max(...a));
或者,如果你想要一个数组的最大值,就这样做吧

var original = [[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]];
Math.max.apply(null, original.map(function(arr) { return Math.max.apply(null, arr); }));

如果你想达到极限,就这么做吧

arr.map(a => Math.max(...a));
或者,如果你想要一个数组的最大值,就这样做吧

var original = [[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]];
Math.max.apply(null, original.map(function(arr) { return Math.max.apply(null, arr); }));
编辑: 为了向数组添加值,我建议使用push方法n。如中所示: NewArray.push(Math.max(…sub[i]);或NewArray.push(Math.max.apply(null,sub[i])。 另一种方法是,在声明数组时,声明数组的大小: Var newArray=新数组(arr.length); javascript中有一个新的排列运算符(…)!

编辑: 为了向数组添加值,我建议使用push方法n。如中所示: NewArray.push(Math.max(…sub[i]);或NewArray.push(Math.max.apply(null,sub[i])。 另一种方法是,在声明数组时,声明数组的大小: Var newArray=新数组(arr.length); javascript中有一个新的扩展运算符(…),它使用lodash!

original.map(function(arr) { return Math.max.apply(null, arr); });
使用lodash

original.map(function(arr) { return Math.max.apply(null, arr); });

是否要查找数组中的最大值?是的,因此我试图完成的是遍历每个子数组并查找其中的最大整数,然后将最大整数传递到一个单独的数组中。因此,函数返回一个数组,其中4个整数每个整数是主数组中4个子数组的最大整数。可能的重复你想在数组中找到最大的吗?是的,所以我试图完成的是遍历每个子数组,找到其中的最大整数,并将最大整数传递到一个单独的数组中。因此,函数返回一个数组,其中4个整数,每个整数是主数组中4个子数组的最大整数。可能的重复可能重复的类别,所以这实际上在所有数组中返回一个最大值,这不是OP的意图。但可以是单独的任务,所以这实际上在所有数组中返回一个最大值,这不是OP的意图。但可以是单独的任务酷!您的解决方案可以工作,但是在我使用它之前,我想知道空0对我意味着什么n math.max.apply()?@AliAslam它是函数中用作
值的值。因为
math.max
不使用它,所以没关系。或者只是
newArray=arr.map(math.max.apply.bind(math.max,math))
:)酷!你的解决方案可以工作,但是在我使用它之前,我想知道空0在math.max.apply()中的意思是什么?@AliAslam它是函数中用作
这个
值的值。因为
math.max
不使用它,所以没关系。或者只是
newArray=arr.map(math.max.apply.bind(math.max,math))
:)
Math.max([1,2,3])
找不到max aomng数组元素。它返回
NaN
。是的!事实上,我做了更好的研究,Math.max只接受数字,不接受数组。如果你传递sub[i],你将得到NaN。我建议使用newarray.push(null,Math.max.apply(sub[i]),没有扩展运算符(
)在广泛使用的javascript中,即在浏览器中。如其他答案所述,这是ES6
Math的一个功能。max([1,2,3])
找不到max aomng数组元素。它返回
NaN
。是的!事实上,我做了更好的研究,Math.max只接受数字,而不接受数组。如果你通过sub[i]您将拥有NaN。我建议使用newarray.push(null,math.max.apply(sub[I])在广泛可用的javascript中,即在浏览器中,没有扩展运算符(
)。正如其他答案中所述,它是ES6的一个功能