这与此问题类似,只有PHP-> javascript
答案 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.max,Array.prototype.keys(),Iterators and generators
答案 5 :(得分:0)