Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中获取数组中的最后一个键?_Javascript_Arrays - Fatal编程技术网

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

如何在javascript中获取数组中的最后一个键?,javascript,arrays,Javascript,Arrays,这类似于这个问题,只有PHP->javascript 首选术语是元素,而不是键 编辑:还是说最后一个索引?这就是myarray.length-1。请记住,JavaScript数组只能以数字形式编制索引(尽管数组也是对象,这会造成一些混乱)。数组的最后一个键始终是arr.length-1,因为数组总是以键0开头: var arr = new Array(3); // arr === [], arr.length === 3 arr.push(0); // arr ===

这类似于这个问题,只有PHP->javascript

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


编辑:还是说最后一个索引?这就是myarray.length-1。请记住,JavaScript数组只能以数字形式编制索引(尽管数组也是对象,这会造成一些混乱)。

数组的最后一个键始终是
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

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

return array.length - 1;
但是,如果您有一个关联数组,则必须知道键并在其中循环。请注意,JavaScript不知道“关联数组”这类东西,因为JavaScript中的大多数元素都是对象

免责声明:在JavaScript中使用关联数组是错误的,并且可能导致问题

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

首先,我为糟糕的英语感到抱歉。 假设您的数组是“键关联数组”,带有数字格式的字符串键。 您将需要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 
希望我能帮忙

Math.max(...[...myArray.keys()]);
此处
myArray
是数组的名称

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

内容如下:

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

)

key()方法返回给定对象自身属性名的数组,其顺序与普通循环相同

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

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

@JavaScript中的user198729数组与PHP的工作方式不同。PHP将它们实现为稀疏数组,这就是为什么第一个/最后一个元素的索引并不总是0/len-1。在JavaScript中,所有数组都是密集数组、零基、完全填充(可能未定义)的索引元素,从0到.length-1。为什么要使用
数组
?您没有使用它的数组(即magic
length
属性),因此您最好使用
对象
。另外,JavaScript规范在循环中为…使用
时,无法保证键的顺序,因此在第一个示例中没有“最后一个键”这样的东西,我使用了length属性。由于此属性在关联数组上不可用,我添加了第二个示例,它清楚地演示了“模拟最后一个键”的用例。由于OP知道最后一个键的名称,因此可以使用上述方法.Re获取实际元素。长度属性,我指的是第二个例子,不是第一个。啊,我理解。OP特别询问了如何在
数组中获取密钥,这就是为什么(尽管它在技术上仍然是
对象)。可能有更精确的方法来实现这一点。然后,为了回答最初的问题,即关联数组中的最后一个键是什么,我必须做:stringKeys[len-1],或者如果您想要整数integerKeys[len-1]。
var keys = Object.keys(my_array);
var last = keys[keys.length - 1];
console.log(my_array[last]);