我在我的代码中定义了这个名为rates.rates:
的对象{ AUD="1.4553", BGN="1.9558", BRL="3.5256"}
我有以下$ .each循环:
$.each( rates.rates, function( index, value ){
console.log(index);
});
我一直在尝试没有成功,也可以控制下一个或上一个索引(如果它们当然存在)。任何帮助都非常感谢。
答案 0 :(得分:1)
不是迭代对象,而是将其键作为数组并迭代。然后,您可以在数组索引中添加和减去。
var keys = Object.keys(rates.rates);
$.each(keys, function(index, key) {
var prevkey = index > 0 ? keys[index-1] : null;
var nextkey = index < keys.length-1 ? keys[index+1] : null;
console.log(prevkey, key, nextkey);
});
答案 1 :(得分:0)
JS对象没有已定义的顺序,它们(根据定义)是一组未排序的键值对。
但是你有办法做你想做的事。你可以这样做。
var keys=Object.keys(rates.rates);
for(vari=0; i<keys.length;i++)
{
console.log(i);
}
答案 2 :(得分:0)
您可以使用modulo
获得下一个或上一个。有了这个,你可以自动循环。
请尝试以下:
rates={
rates:{ "AUD":"1.4553", "BGN":"1.9558", "BRL":"3.5256"}
};
var keys = Object.keys(rates.rates);
$.each(keys, function(index, key) {
if(index == 0){index=keys.length};
var prevkey = (index-1) % keys.length;
var nextkey = (index+1) % keys.length;
console.log(prevkey, key, nextkey);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>