JavaScript:返回最大的数字
有人能告诉我这个代码有什么问题吗?我试图从四个不同的数组返回最大的数字JavaScript:返回最大的数字,javascript,arrays,comparison,Javascript,Arrays,Comparison,有人能告诉我这个代码有什么问题吗?我试图从四个不同的数组返回最大的数字 function largestOfFour(arr) { var longList = []; for (var i in arr){ var longest = 0; for (var x=0; x<i.length; x++){ if (i[x] > longest){ longest=i[x]; } longList.push(l
function largestOfFour(arr) {
var longList = [];
for (var i in arr){
var longest = 0;
for (var x=0; x<i.length; x++){
if (i[x] > longest){
longest=i[x];
}
longList.push(longest);
}
}
return longList;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
for(arr中的var i)
给出了索引,因此i[x]
最终是0[0]
而不是arr[0][0]
使用for(var index=0;indexfor(arr中的var i)
给出了索引,因此i[x]
最终是0[0]
而不是arr[0][0]
使用for(var index=0;indexfor(arr中的var i)
给出了索引,因此i[x]
最终是0[0]
而不是arr[0][0]
使用for(var index=0;indexfor(arr中的var i)
给出了索引,因此i[x]
最终是0[0]
而不是arr[0][0]
对(var index=0;index//排序函数)使用
var op=函数(a,b){返回a
//排序功能
var op=函数(a,b){返回a
//排序功能
var op=函数(a,b){返回a
//排序功能
var op=函数(a,b){返回a
将输出什么以及显示什么?您遇到了什么问题?Protip:永远不要使用for(var k in…)
用于数组。它不做你认为它做的事。顺便说一句,通常人们会使用变量名k
或key
来表示它给你的是键,而不是像Python等其他语言那样给你的值。你的数组.map(Function.apply.bind(Math.max,Math))
将输出什么以及显示什么?您遇到了什么问题?Protip:永远不要使用for(var k in…)
用于数组。它不做你认为它做的事。顺便说一句,通常人们会使用变量名k
或key
来表示它给你的是键,而不是像Python等其他语言那样给你的值。你的数组.map(Function.apply.bind(Math.max,Math))
将输出什么以及显示什么?您遇到了什么问题?Protip:永远不要使用for(var k in…)
用于数组。它不做你认为它做的事。顺便说一句,通常人们会使用变量名k
或key
来表示它给你的是键,而不是像Python等其他语言那样给你的值。你的数组.map(Function.apply.bind(Math.max,Math))
将输出什么以及显示什么?您遇到了什么问题?Protip:永远不要使用for(var k in…)
用于数组。它不做你认为它做的事。顺便说一句,通常人们会使用变量名k
或key
来表示它给你的是键,而不是像Python等其他语言那样给你的值。你的数组.map(Function.apply.bind(Math.max,Math))
我不想回答,但当我看到这个问题时,我想到的是使用Math.max.apply
。从风格上来说,你更喜欢显式地传递Math
作为this
引用吗?Math.max.apply(null,arr);
会产生相同的结果。@t3dodson:应该没关系,但Math.max.apply(Math,[1,2])
是数学最大值(1,2)的实际等效值
;虽然没有什么意外,但我想这会让我养成良好的习惯。谢谢你的帮助。是的,碱鱼有一个完美的答案,但我也感谢你的帮助。我不想回答,但当我看到这个问题时,我想使用数学。max.apply
。从风格上说,你更喜欢明确地传递>Math
作为此
引用?Math.max.apply(null,arr);
产生相同的结果。@t3dodson:不要紧,但是Math.max.apply(Math,[1,2])
Math.max(1,2)的实际等价物
;虽然没有什么意外,但我想这会让我养成良好的习惯。谢谢你的帮助。是的,碱鱼有一个完美的答案,但我也感谢你的帮助。我不想回答,但当我看到这个问题时,我想使用数学。max.apply
。从风格上说,你更喜欢明确地传递>Math
作为此
引用?Math.max.apply(null,arr);
产生相同的结果。@t3dodson:不要紧,但是Math.max.apply(Math,[1,2])
Math.max(1,2)的实际等价物
;虽然没有什么意外,但我想这会让我养成良好的习惯。谢谢你的帮助。是的,碱鱼有一个完美的答案,但我也感谢你的帮助。我不想回答,但当我看到这个问题时,我想使用数学。max.apply
。从风格上说,你更喜欢明确地传递>Math
作为这个
引用?Math.max.apply(null,arr);
会产生相同的结果。@t3dodson:不要紧,但是Math.max.apply(Math,[1,2])
Math.max(1,2)
的实际等价物
function largestOfFour(arr) {
return arr.map(Function.apply.bind(Math.max, Math));
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
var arrayMax = function(arr) {
return arr.reduce(function(a, e) { return Math.max(a, e); });
}
arrayMax(arr.map(arrayMax));
// ==> 1001
var arrayMax = function(arr) {
return Math.max.apply(Math, arr);
}
arrayMax(arr.map(arrayMax));
// ==> 1001
// sort function
var op = function(a, b) { return a < b};
// the input
arr2d = [[8,7,1,78,899],[8,7,1,78,198],[8,7,1,78,598],[8,7,1,78,398]];
// output
var result = [];
// process
arr2d.forEach(function(arr) {
result.push(arr.sort(op)[0]); // sort and return the highest of the numbers
});