【发布时间】:2019-02-14 20:26:09
【问题描述】:
我这里有一个算法,它找到每个子数组中的最大值并将其推送到一个单独的数组(最终)。
我想让变量 'value' 等于可能的最小数字,这样任何负数都可以被认为高于 'value'
function largestOfFour(arr) {
var final=[];
arr.map(sub => {
let value = 0; //issue
sub.map(num => {
if(num>value){value=num};
})
final.push(value)
})
return final;
}
console.log(largestOfFour([[17, 23, 25, 12], [25, 7, 34, 48], [4, -10, 18, 21], [-72, -3, -17, -10]]));
在本例中,最后一个子数组返回 0,因为该子数组中没有一个数字高于 'value' 的初始值,即 0。
我希望它返回“-3”,因为它是子数组中的最高数字。
【问题讨论】:
-
let value = Number.NEGATIVE_INFINITY; -
您问错了问题,您要寻找的是如何找到最多四个数字。假设数组的第一个元素是最高的,然后针对它测试其他元素。
-
以后,请注意@ChrisG 在他的评论中提到的可怕的XY Problem。虽然提供您已采取的步骤很重要,但通常最好询问最终目标本身,而不是建议的解决方案。
标签: javascript arrays algorithm