这是我的尝试,并且工作正常,但是我需要返回包含最大数字而不是最大数字本身的数组。

另外,我想知道是否有一种方法可以使用深度相等来比较2D数组中的内部数组。



function largestOfFour(arr) {
	for (var i = 0; i < arr.length; i++) {
		var largest = [0][0];
		for (var j = 0; j < arr[i].length; j++) {
			if (arr[i][j] > largest) {
				largest = arr[i][j];
			}
		}
	}

	return largest;

}

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

console.log(largest);

最佳答案

创建另一个变量,并在记录最大数字的同时存储arr[i]数组。如果只需要最大的数组,则可以删除largest变量(或用它替换largestOrigin)。

的JavaScript

function largestOfFour(arr) {
    var largest = 0,
        largestOrigin = [];

    for(var i = 0; i < arr.length; i++){
        for (var j = 0; j < arr[i].length; j++) {
            if(arr[i][j] > largest){
                largest = arr[i][j];
                largestOrigin = arr[i];
            }
        }
    }
    return largestOrigin;
}

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


JSFiddle (live demo)

10-06 05:24
查看更多