[英]Passing an array infunction gives me undefined in console
在下面的javascript代碼中,如果我僅打印將數組傳遞給函數的數字。 它打印數組並給出undefined。 因此,下面的邏輯給出了答案,但是在下一行中,它未打印出來。
function getSecondLargest(nums) {
let deceding = nums.sort(function(a, b){return b-a});
for(let i = 0; i<deceding.length ; i++)
{
if(deceding[i]>deceding[i+1])
{
console.log(deceding[i+1]);
break;
}
}
}
假裝為[0, 1, 2]
。
您有i < deceding.length
,所以i
范圍是0到2(小於length,即3)。
接下來,執行console.log(deceding[i + 1]);
,但對於循環的后續迭代,i + 1將大於2,這是數組的最后一個索引,這意味着它是未定義的。 即,您嘗試獲取未定義的deceding[3]
。
我請您在chrome console
上運行此功能。 實際上,您的函數什么也不返回。 因此它是控制台undefined
。 這和你得到的一樣嗎? http://prntscr.com/hgma9g
chrome控制台始終打印出從最后一行代碼返回的內容。 因此,如果這是一個賦值或函數調用而沒有返回值,則它將打印undefined
。 所以不用擔心,您的功能按預期工作。
有一種方法可以通過賦值並返回您要在函數中登錄的值來進行傳遞。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.