获取数组的最后一个元素时出错

时间:2016-05-26 03:20:15

标签: javascript

我必须记录数组中的最后一个元素。我试试这段代码:

       $scope.t=["item1","item2","item3"];
       $scope.tablng= $scope.t.length ; 
       console.log( $scope.t[$scope.tablng]); 

但我得undefined。我该如何解决呢

3 个答案:

答案 0 :(得分:2)

在数组中,索引从0开始,因此您必须减去1到您检索的长度以获取数组中的最后一个元素。快速修复

$scope.t=["item1","item2","item3"];
$scope.tablng = $scope.t.length; 
console.log( $scope.t[$scope.tablng-1]); 

更好的方法是确定数组是否为空,因为在这种情况下$scope.tablng将为-1,这又是undefined

$scope.t=["item1","item2","item3"];
if ($scope.t.length > 0) {
   $scope.tablng = $scope.t.length-1; 
   console.log( $scope.t[$scope.tablng]); 
} else {
   // the array is empty
}

JSFiddle:https://jsfiddle.net/56jyjjwt/1/

答案 1 :(得分:0)

您可以编写原型函数:

Array.prototype.last=function(){
return this[this.length-1];
};

$scope.t=["item1","item2","item3"];
console.log($scope.t.last()); //"item3"

答案 2 :(得分:0)

当你得到数组中的第一项时:array [0]
获取数组中的最后一项:array [length-1]
在你的代码中:

console.log( $scope.t[$scope.tablng-1]);