我正在接收一個陣列,需要回傳數字開始增加或減少的索引值。陣列中的數字要么增加然后減少 [1, 3, 6, 4, 3](輸出 = 2)減少然后增加 [6, 4, 10, 12, 19](輸出 = 1)或相同的序列 [1 , 3, 5, 7, 9](輸出 = -1)。現在我只專注于回傳增加然后減少的陣列的索引,然后我想我可以弄清楚其他條件。
function ArrayChallenge(arr){
for(let i = 0; i < arr.length; i ){
if(arr[i]>arr[i 1]){
console.log(arr.indexOf(arr[i]>arr[i 1]))
}
}
}
console.log(ArrayChallenge([1, 2, 4, 5, 7, 3]))
為了我的代碼說,就拿在引數(引數arr),然后for回圈將通過各指標和比較i與i 1,如果i大于i 1這意味著序列正在減少。如果是這種情況,我想控制臺記錄實際發生的索引。對于我上面的示例代碼,輸出應該是 5,因為這是數字開始減少的索引,但我得到 -1,這意味著找不到元素。如果有人知道我哪里錯了,并且可以指出我正確的方向,那就太好了,我很確定我使用的.indexOf方法不正確,但我不知道為什么。
uj5u.com熱心網友回復:
"arr[i]>arr[i 1]" 回傳一個布林值 "true"。您的陣列不包含任何布林值,因此沒有匹配的索引。因此它回傳 -1 因為它找不到任何匹配的元素。
編輯:
如果你想在你的值下降時列印出“時刻”,你可以嘗試這樣的事情:
console.log('Decreasing from index: ' arr.indexOf(arr[i]) ' to ' arr.indexOf(arr[i 1]))
uj5u.com熱心網友回復:
使用return arr[i]代替console.log(arr.indexOf(arr[i]>arr[i 1]))
function ArrayChallenge(arr){
for(let i = 0; i < arr.length; i ){
if(arr[i]>arr[i 1]){
return arr[i]
}
}
}
console.log(ArrayChallenge([1, 2, 4, 5, 7, 3]))
output: 7
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418599.html
標籤:
