我是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循环中访问上一个或下一个键/值对?
答案 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?
}