如何在javascript中获取数组中的最后一个键?

时间:2010-02-04 10:58:23

标签: javascript arrays

这与此问题类似,只有PHP-> javascript

How to get numeric key of new pushed item in PHP?

6 个答案:

答案 0 :(得分:19)

var foo = myarray[myarray.length - 1];

首选术语是元素,而不是键。

编辑:或者你的意思是最后一个索引?那是myarray.length - 1。请记住,JavaScript数组只能以数字方式编制索引(尽管数组也是对象,这会导致一些混淆)。

答案 1 :(得分:6)

如果是平面阵列,则会执行以下操作:

return array.length - 1;

但是,如果你有一个关联数组,你必须知道密钥并循环它。请注意,虽然JavaScript不知道“关联数组”,因为JavaScript中的大多数元素都是对象。

免责声明: JavaScript中关联数组的使用是generally not a good practice,可能会导致问题。

var x = new Array();
x['key'] = "value";
for (i in x)
{
    if (i == 'key')
    {
        alert ("we got "+i);
    }
}

答案 2 :(得分:2)

数组的最后一个键总是arr.length-1,因为数组总是以键0开头:

var arr = new Array(3);  // arr === [], arr.length === 3
arr.push(0);             // arr === [undefined, undefined, undefined, 0], arr.length === 4
arr[arr.length-1]        // returns 0

var arr = [];            // arr === [], arr.length === 0
arr[3] = 0;              // arr === [undefined, undefined, undefined, 0], arr.length === 4
arr[arr.length-1]        // returns 0

答案 3 :(得分:2)

首先抱歉英语不好。 假设您的数组是"关键数据"使用数字格式的字符串键。 你需要3步: 获取所有数组键。 将数组键转换为整数。 获取最大值或长度或任何其他键属性。

stringKeys= Object.keys(keyValueArray);//get keys of array 
integerKeys=stringKeys.map(Number);//convert to integer
mx=Math.max.apply(integerKeys);//get max
len=stringKeys.length;//get length 
希望我帮助

答案 4 :(得分:0)

Math.max(...[...myArray.keys()]);

此处myArray是数组的名称。

这是一个基于您提到的问题的解决方案。假设数组是一维数组或所有数组键都是数字。

读取: Math.maxArray.prototype.keys()Iterators and generators

答案 5 :(得分:0)

如果您的数组是关联数组(Object),我认为最好的方法是使用Object.keys()

From MDN;

  

Object.keys()方法返回给定对象自己的属性名称的数组,其顺序与我们在普通循环中获得的顺序相同。

首先获取数字数组中数组的键。
然后获取最后一个密钥,并在对象中使用它。

var keys = Object.keys(my_array);
var last = keys[keys.length - 1];
console.log(my_array[last]);