gpt4 book ai didi

javascript - 将 for 循环和 while 循环转换为 do...while 循环 JavaScript

转载 作者:行者123 更新时间:2023-12-02 15:03:31 26 4
gpt4 key购买 nike

我有这 2 个循环来查找整数数组中的最大数字(一个 for 循环和一个 while 循环具有相同的目的)对于:

var forHighest = function(array) {
var highest = array[0];
for (var i = 0; i < array.length; i++) {
if (highest < array[i]) {
highest = array[i];
}
}
return highest;
};

同时:

var whileHighest = function(array) {
var i = 0;
var highest = array[0];
while (i < array.length) {
if (array[i] > highest)
highest = array[i];
i++;
}
return highest;
};

但现在我需要创建一个 While 循环,但我尝试的所有操作都会不断给出数组 [0] 索引处的数字。我认为我以前从未在功能上使用过 do...while 循环,所以也许我没有完全理解它们是如何工作的。以下是我的一些尝试:

var doWhile = function(array) {
var i = 0;
do {
i++;
} while (i < array.length);
if (array[i] > highest)
highest = array[i];
return highest;
};

还有:

var i = 0;
var highest = array[0];
do{
if(highest < array[i]){
highest = array[i];
i++;
}
} while(i < array.length);

和:

var doWhile = function(array) {
var i = [i];
// var i = 0;
var highest = array[i];
do
{
i++;
} while (array[i] < highest && i < array.length);
// if (array[i] > highest);
return array[i];

但是它们都不起作用。有人可以向我解释我做错了什么吗?

最佳答案

As mentioned in the comments, there are better ways to get the max/min in an array, but the point of the question is to know how write a do...while loop

你的第二次做... while 很接近

var i = 0;
var highest = array[0];
do {
if (highest < array[i]){
highest = array[i];
}
i++; // this line moved out of the if block
} while(i < array.length);

但是,更正确的是

var i = 1;
var highest = array[0];
if (array.length > 1) {
do {
if(highest < array[i]){
highest = array[i];
}
i++;
} while(i < array.length);
}

因为不需要检查数组是否是单个元素,也不需要检查 array[0] 和 array[0],所以可以用 i = 1 开始循环

关于javascript - 将 for 循环和 while 循环转换为 do...while 循环 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35284085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com