2015-09-11 38 views
2

我想選擇使用此功能數組第N個元素:使用遞歸查找數組元素 - JavaScript的

function nthArr(arr, index){ 
    if (index === 0) 
     return arr[index]; 
    else nthArr(arr.slice(1), --index); 
} 

nthArr([1,2,3,4,5,6],3) 

我將等待它返回4,而是我得到「未定義」。
我應該如何返回正確的值?

+4

不應該有一個'後某處return''else'? – Biffen

+4

嗯......但是爲什麼?不管'arr [index]'是否適用於所有指數? –

+0

@JohnBupit數組[]正確訪問索引 – Onilol

回答

3

您在else分支中缺少return語句。

if (index === 0) 
    return arr[index]; 
else { 
    return nthArr(arr.slice(1), --index); // Note the return 
} 
+1

- 我的java習慣:-) – borism

2

您錯過了return聲明......但爲什麼不簡化整個事情呢?

function nthArr(arr, index){ 
 
    return arr[index]; 
 
} 
 

 
var result = document.getElementById('result'); 
 
result.textContent = nthArr([1,2,3,4,5,6], 3);
<span id="result"></span>

+0

是的這更簡單,但我需要它遍歷列表對象 – borism