如何在关联数组上使用整数索引进行迭代?

时间:2015-06-26 07:39:12

标签: javascript jquery

似乎我无法在任何地方找到答案

我有一个数组

array=["id1" : "somedata", "id2" : "somedata2",....]

所以我可以使用特殊的db id对其进行索引 但是如果我想从起始位置迭代(整数)通过这个数组呢?

for(i=5;i<10;i++)
   array[i]... <= complains that index dont exist of course 

5 个答案:

答案 0 :(得分:1)

这似乎不是一个有效的数组。

要么:

array=[{"id1" : "somedata"}, {"id2" : "somedata2"},....]

或者:

object={"id1" : "somedata", "id2" : "somedata2",....}

无论如何,迭代数组:

for(i=5;i<10;i++) { // or i = 5; i < 10 && i < array.length; i++
    if(array[i]) { // check if the index exists, also you could use array[i] !== undefined
        ....
    }
}

答案 1 :(得分:0)

Javascript中的“关联数组”基本上是一个Object。因此,您可以使用Object.keys来检索密钥和密钥。抓住相关指数:

var keys = Object.keys(arr);
for(i=5; i<10; i++) {
    var keyName = keys[i]; // "id1", "id2", etc.
    console.log(arr[keyName]); // "somedata"
}

jsFiddle

答案 2 :(得分:0)

首先,它不是数组[]而是对象{},现在您可以做的是获取每个值,并将它们存储到索引中,或者创建自己的对象数组,我不是确切地知道你的下一个要求是什么

array={"id1" : "somedata", "id2" : "somedata2"};
$.each(array, function( index, value ) {
  console.log( index + ": " + value );
});

答案 3 :(得分:0)

试试这个,

拆分数组的值。

function array_values(input) {      

  var tmp_arr = [],
    key = '';

  if (input && typeof input === 'object' && input.change_key_case) { // Duck-type check for our own array()-created PHPJS_Array
    return input.values();
  }

  for (key in input) {
    tmp_arr[tmp_arr.length] = input[key];
  }

  return tmp_arr;
}

用法

var new_array = array_values(your_array);

现在您的new_array包含索引为0,1,2的值...您现在可以for循环播放..

答案 4 :(得分:0)

假设您的数组定义如下:

array={"id1" : "somedata","id2" : "somedata2"};

这将使用您需要的索引遍历数组,例如:

for (var k in array){
    if (array.hasOwnProperty(k)) {
         alert("Key is " + k + ", value is" + array[k]);
    }
}