Javascript-查找与数组键对应的索引

Javascript-查找与数组键对应的索引,javascript,Javascript,假设有一个JavaScript数组 myArray = { "key1" : value1 ... "keyn" : valuen } 我的问题是,我能找到对应于,比如“key1”的整数索引吗 我需要值和它在数组中的整数位置 否。 这是一个对象,而不是数组 对象键是无序的。否。 这是一个对象,而不是数组 对象键是无序的。要获取值,可以执行以下操作: console.log(myArray.key1); log(myArray.key1); 要获得价值,您可以执行以下操

假设有一个JavaScript数组

myArray = {
    "key1" : value1
    ...
    "keyn" : valuen
} 
我的问题是,我能找到对应于,比如“key1”的整数索引吗

我需要值和它在数组中的整数位置

否。
这是一个对象,而不是数组

对象键是无序的。

否。
这是一个对象,而不是数组


对象键是无序的。

要获取值,可以执行以下操作:

console.log(myArray.key1); log(myArray.key1);
要获得价值,您可以执行以下操作:

console.log(myArray.key1); log(myArray.key1);
@Slaks是正确的,但也许你可以捏造它:

for(var key in myArray) {
    var sudoIndex = +key.match(/\d+/g)[0],
        value = myArray[key];
    // do stuff
}

这假设您的密钥编号与示例中的相同。

@Slaks是正确的,但您可能可以伪造它:

for(var key in myArray) {
    var sudoIndex = +key.match(/\d+/g)[0],
        value = myArray[key];
    // do stuff
}

这假设您的键像示例中那样编号。

从技术上讲,这是一个对象文字,而不是数组。因此,它的属性没有“索引”。在迭代中,可以将一个整数关联到
中的每个属性,但不能保证每次属性的顺序相同。从技术上讲,这是一个对象文字,而不是数组。因此,它的属性没有“索引”,可以在
for in
迭代中将一个整数与
中的每个属性相关联,但不能保证每次属性的顺序都相同。我使用
for in
并检查每个属性,同时增加一个整数。属性是按所需的顺序迭代的,因为我是按字母顺序给出的@永恒思想者:属性不保证保留任何特定的顺序。尽管您可能在有限的测试中看到了这一点,但在其他浏览器(或同一浏览器的其他实例)中,行为可能会有所不同。如果需要对属性进行排序,则需要将顺序存储在单独的数据结构中,例如包含属性名称的数组。我在
中使用了
,并检查了每个属性,同时递增一个整数。属性是按所需的顺序迭代的,因为我是按字母顺序给出的@永恒思想者:属性不保证保留任何特定的顺序。尽管您可能在有限的测试中看到了这一点,但在其他浏览器(或同一浏览器的其他实例)中,行为可能会有所不同。如果需要对属性进行排序,则需要将顺序存储在单独的数据结构中,例如包含属性名称的数组。