あなたは非常に親切で、以下のコードの "else if"ステートメントが配列から2番目に大きい数字を返す方法を説明しますか?JavaScriptを使用して配列内の次に大きい数字を見つけるIf ... Elseステートメント
特に、else if文内にAND演算子(& &)が存在しません。私は、exのための意味:
else if (max2 < array[i] && max1 > array[i])
(「それが動作する理由」)私はstackoverflowの上の人がこの種のアプローチを使用していますが、彼らは任意の詳細な説明を与えていない:
var arr1 = [2, 3, 1, 6, 100, 49, 5, 7, 8, 9];
function getSecondMaxNumber(array) {
var max1 = 0;
var max2 = 0;
for (var i = 0; i <= array.length; i++) {
if (max1 < array[i]) {
max1 = array[i];
} else if (max2 < array[i]) {
max2 = array[i];
}
}
return max2;
}
console.log(getSecondMaxNumber(arr1));
更新
上記の方法は間違っています。
私が使用することを決めた:
var arr1 = [2, 3, 1, 6, 100, 49, 5, 7, 8, 9];
function getSecondMaxNumber(array) {
function sortNumbers(a, b) { //Compare numbers.
return a - b;
}
var arrSorted = array.sort(sortNumbers); //Set up sorting.
return arrSorted[arrSorted.length - 2]; //Choose the second largest number in an array.
}
console.log(getSecondMaxNumber(arr1)); //Show me that number.
'else'テストにのみ実行されたときに'配列[i]は> = max1'あなたの提案 '&&'句のための必要はありませんので。 – Pointy
あなたのアルゴリズムはソートされた番号では機能しません。 –
そうです。すべての数値配列では機能しません。 –