2015-06-26 25 views
0

看来我无法找到一个答案,这在任何地方如何迭代关联数组上的整数索引?

我有一个数组

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

,所以我可以用一个特殊的数据库ID 但如果我想要遍历(整数)什么通过这个数组的索引它从一开始的位置?

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

阵列=:通过与所需的索引,例如,阵列P { “ID1”: “somedata”, “ID2”: “somedata2”,...}? – KennyXu

+0

你应该像'[{“id”:“somedata”},{“id”:“somedata2”},....]'' – Satpal

+0

@ user1465639正确创建数组我认为OP意味着他们有一个数组:'arr [ “id1”] =“somedata”' – CodingIntrigue

回答

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 
     .... 
    } 
} 
0

Javascript中的“关联数组”基本上是一个对象。所以,你可以使用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

0

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

array={"id1" : "somedata", "id2" : "somedata2"}; 
$.each(array, function(index, value) { 
    console.log(index + ": " + value); 
}); 
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环..

0

假设你的数组定义像这样:

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

这将厕所

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