栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

创建由每个子数组的最大值组成的数组无法正常工作

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

创建由每个子数组的最大值组成的数组无法正常工作

当您尝试找到每个数组的最大值时,问题就在内部循环上。在外循环的每次迭代中,您都应重置

long =arr[k][0]
。由于最大值可能小于0,因此不应将其重置为0。请注意,这期望所有子数组至少具有一项。

如@ edc65所指出的那样,的声明

long
应在函数的开始处进行,以明确表明
long
,作为所有局部变量,都具有函数作用域。


每个子数组只需要一个值。因此,您应该为外循环的每次迭代添加一个值(

main.push
应该在外循环中)。目前,您正在为每个子数组元素添加一个值。


在if语句中,您的分配是相反的。它应该是

long = arr[k][i];

并且条件也被反转。

long
存储每个子数组的最大值。因此,如果发现 大于 它的值,则更新它:

if(arr[k][i]>long) {    long = arr[k][i];}

当推入数组时,请使用括号而不是括号:

main.push(long);

括号用于调用方法。括号用于访问对象的属性。

最终代码

function largestOfFour(arr) {    var main = [];    var long;    for(k=0;k<arr.length;k++){       long = arr[k][0];         for(i=0;i<arr[k].length;i++){ if(arr[k][i]>long) {     long = arr[k][i]; }        }        main.push(long);    }    return main;}

[
Math.max
](https://developer.mozilla.org/en-

US/docs/Web/Javascript/Reference/Global_Objects/Math/max) 方法

您可以

Math.max
用来简化代码

function largestOfFour(arr) {    var main = [];    for(k=0;k<arr.length;k++){        var long = Math.max.apply(null, arr[k]);        main.push(long);    }    return main;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/617045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号