我是javascript新手,所以請原諒我,如果它的東西明顯。訪問for-in循環中的前一個鍵/值
可以說我有一個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循環?
我是javascript新手,所以請原諒我,如果它的東西明顯。訪問for-in循環中的前一個鍵/值
可以說我有一個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循環?
不,沒有直接的辦法。一種解決方法是使用一個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。是的,我想我會使用這種方法,並下降for-in循環。我期待着一些直接的方式在for-in循環中做到這一點。 –
@PratikPatel:無論如何,for..in'都是一個壞主意,所以是的,請放棄它。 – georg
我想避免使用Object.keys()函數,因爲這個回答中的評論http://stackoverflow.com/a/4889658/2039750其中說,「這不僅遍歷對象,而且還創建一個全新的數組所有的鍵......「 –
嘗試像
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?
}
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爲空時。
你爲什麼不連鎖行業試試看..? –