4

我是 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

4 回答 4

5

不,没有直接的方法。一种解决方法是使用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];
     ...
  }
于 2013-07-12T09:34:36.413 回答
1
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 last in 循环提供一个新值,您将在循环期间拥有“内存中”的值。该if语句主要是因为第一次循环运行,当时 lastobj 还为空。

于 2013-07-12T09:26:52.750 回答
1

你不能在循环结束时说:

previousKey = key

那么你可以在下一个循环中使用 previousKey 吗?这是我在自己的小脚本中做的事情,我并不擅长编写脚本,但到目前为止这对我有用。

于 2020-10-27T13:38:27.263 回答
-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?
}
于 2013-07-12T09:26:06.737 回答