2013-05-10 32 views
0

不確定array.length返回undefined我有以下代碼:如果最後一個元素是在JavaScript

function lastElement(array) { 
    if (array.length > 0) 
    return array[array.length - 1]; 
    else 
    return undefined; 
} 

alert(lastElement([ undefined,1, 2])); 

它返回2,因爲它不計數的不確定因素&這是完全fine.Now如果我換陣列中的最後一個元素與未定義:

function lastElement(array) { 
    if (array.length > 0) 
    return array[array.length - 1]; 
    else 
    return undefined; 
} 

alert(lastElement([ 1, 2,undefined])); 

它返回未定義!!這是爲什麼?任何幫助讚賞。

+0

@Christophe是啊,這是太愚蠢的問這個。已經投票贊成閉幕。 – 2013-05-10 05:04:45

回答

5

因爲數組中的最後一個元素是undefined

陣列具有3個元素12undefined其中未定義具有索引2和陣列具有3.

因此,一個長度時,返回array[array.length - 1]它是undefined

+0

我做了一個巨大的錯誤,沒有正確看功能。感謝和如此愚蠢的我問這個。 +1,並會在一分鐘內接受你的回答 – 2013-05-10 04:24:00

1

你問它最後一個元素 - 最後一個元素是未定義的 - 因此你正在回到你要求的東西。

在第一種情況下,它不會忽略未定義的數組元素,它將對它進行計數,但不輸出其值。如果你有一個數組,每個值都是未定義的,那麼每個索引都會通過該函數返回undefined。

+0

感謝您的幫助。 +1 – 2013-05-10 04:25:36

1

它不說array.lengthundefined ..當你在數組的最後一個元素返回時,它說:undefined

function lastElement(array) { 
    if (array.length > 0) 
    return array[array.length - 1]; 
    else 
    return undefined; 
} 

alert(lastElement([ 1, 2,undefined])); 

這裏array.length = 3array[array.length - 1] = undefined

+1

感謝您清除它。 +1 – 2013-05-10 04:25:19

2

因爲「不確定」作爲一種治療數組的元素!

+0

感謝您的清除。 +1 – 2013-05-10 04:25:00

相關問題