如何使用javascript找到数组的最后一个值?

时间:2014-02-19 13:35:56

标签: javascript

我在javascript中有一个数组。我必须找到该数组的最后一个值。 我的代码就像

var array= fruits;

我必须找到该阵列中的最后一个水果。

7 个答案:

答案 0 :(得分:5)

因为在JavaScript中,n的大小[0..n-1]的数组是从n-1索引的,所以你可以通过简单地在.length索引数组来获取最后一个元素,其中是数组的长度,并且可以由var lastFruit = array[array.length - 1]; 属性获取:

.pop

如果您想获取最后一个元素并将其从数组中删除,您可以使用var lastFruit = array.pop(); // get last element of array and remove it from array methid:

length

注意:正如RobG所说:

  

{{1}} 至少比最高索引多一个,但可能是   更大的

答案 1 :(得分:4)

首先找到数组中的元素数并将其存储在变量中,如

var total = array.length;

现在您可以使用以下代码

找到数组的最后一个值
var last = array[total-1];

答案 2 :(得分:1)

您可以通过使用数组的长度(fruits.length)并减去1(因为数组为0索引)来实现此目的。例如......

fruits[0]="pear";
fruits[1]="apple";
fruits[2]="peach";

所以fruits.length将是3,所以fruits.length - 1 = 2.所以要获得最后一个元素......

var lastFruit = fruits[fruits.length-1];

答案 3 :(得分:1)

  

我必须找到该数组的最后一个值

长度属性至少比最高索引高一个,但可能更高,在这种情况下 n-1 成员可能不存在。 E.g。

// Create an array with length 10
var a = new Array(10);

// Add one member at index 0
a[0] = 'foo';

所以数组的“last”值在索引0处,其值为“foo”。因此,您可以从 length - 1 开始,向后搜索实际存在的成员:

function lastValue(arr) {
  var i = arr.length;
  while (i--) {
    if (i in arr) {
      return arr[i];
    }
  }
  // If get to here, arr has no members
  return -1;
}

// All the following arrays have length 4 but different number of members
console.log(lastValue([ , , , ,]));  // -1, i.e. there are no members
console.log(lastValue([0,1, , ,]));  //  1
console.log(lastValue([0,1,2,3 ]));  //  3
console.log(lastValue([ , , ,3 ]));  //  3

如果您知道数组只有数字成员(即没有非数字属性且没有负数属性),您可以这样做:

var arr = [,,'foo',,'bar',,]; // length 6, highest member is at index 4

console.log(arr[Math.max.apply(Math, Object.keys(arr))]); // 'bar'

需要ES5 Object.keys

答案 4 :(得分:0)

那么你可以找到它的长度,然后你知道最后一个索引,并且可以从中获取项目

var last_item = array[array.length - 1];

答案 5 :(得分:0)

它很简单:

fruits[fruits.length-1]

答案 6 :(得分:0)

在javascript中查找数组最后值的多种方法

  • 不影响原始数组

  • 修改原始数组

  • 通过创建自己的帮助器方法

var arr = [1,2,3,4,5];

console.log(arr.slice(-1)[0])
console.log(arr[arr.length-1])
const [last] = [...arr].reverse();
console.log(last)
console.log(arr.reverse()[0])

console.log('----------Modifies original array----------');
var arr2 = [5, 10, 15];

console.log(arr2.pop())
arr2.push(15)
console.log(...arr2.splice(-1));

console.log('----------By creating own helper method------');

let arr3 = [2, 4, 6, 8, 10];

Object.defineProperty(arr3, 'last', 
{ get: function(){
  return this[this.length-1];
 }
})

console.log(arr3.last);