我有以下代码:
function lastElement(array) {
if (array.length > 0)
return array[array.length - 1];
else
return undefined;
}
alert(lastElement([ undefined,1, 2]));
Run Code Online (Sandbox Code Playgroud)
返回2,因为它不计算未定义的元素,并且完全正常.现在如果我用undefined交换数组中的最后一个元素:
function lastElement(array) {
if (array.length > 0)
return array[array.length - 1];
else
return undefined;
}
alert(lastElement([ 1, 2,undefined]));
Run Code Online (Sandbox Code Playgroud)
它返回undefined !! 为什么会这样?任何帮助赞赏.
因为数组中的最后一个元素是undefined.
该阵列具有3个元素1,2并且undefined其中未定义具有索引2和阵列具有3的长度.
因此当array[array.length - 1]返回时它是undefined