访问for-in循环中的上一个键/值

时间:2013-07-12 09:22:29

标签: javascript loops for-loop for-in-loop

我是javascript的新手,所以如果有明显的东西,请原谅。

假设我有一个for-in循环如下......

for( var key in myObj ){

   alert("key :" + myObj[key] ); // accessing current key-value pair

   //how do I access previous element here?
}

是否可以在for-in循环中访问上一个或下一个键/值对?

4 个答案:

答案 0 :(得分:4)

不,没有直接的方法。一种解决方法是使用for循环而非keys而不是for..in,并按数字索引选择元素:

 keys = Object.keys(myObj);
 for(var i = 0; i < keys.length; i++) {
     current = keys[i];
     previous = keys[i - 1];
     next = keys[i + 1];
     ...
  }

答案 1 :(得分:1)

您难道不可以在循环结束时说:

previousKey = key

那您可以在下一个循环中使用previousKey吗? 这是我在自己的小脚本中所做的事情,我绝不擅长脚本编写,但到目前为止,它对我来说一直有效。

答案 2 :(得分:0)

var lastobj = '';
for( var key in myObj ){
   alert("key :" + myObj[key] ); // accessing current key-value pair

   if(lastobj) {
        //do things with last object here using lastobjs
   }
lastobj = myObj[key]
}

在循环中给lastobj赋一个新值,循环期间你将得到“在内存中”的值。 if语句主要是因为第一次循环运行,当lastobj为空时。

答案 3 :(得分:-1)

尝试

var prev = '';
for( var key in myObj ){

   alert("key :" + myObj[key] ); // accessing current key-value pair
   if(prev)
      alert('Prev key :'+prev);
   prev = myobj[key];
   //how do I access previous element here?
}