HTML:
<input id="sdata" type="hidden" value='{"1651":["12","1"],"1650":["30","0"],"1649":["20","1648":["13","2"],"1647":["11","1646":["10","1645":["12","1644":["8","1643":["16","1642":["10","1641":["10","1640":["18","3"]}' />
JS:
var data = $.parseJSON($('#sdata').val()); $.each(data,function(id,sc) { alert(id); }
OUT:1640,1641,1642,…,1651
如何按照相反的顺序(例如1651,1650 …)?
解决方法
就这样,你不能以任何可靠的方式.因为你正在枚举一个对象,所以永远不会有保证的顺序.
如果你想要一个保证的数字顺序,你需要使用一个数组,并向后迭代.
编辑:这将会将您的对象转换为数组,并进行反向迭代.
请注意,只有所有的属性都是数字的,它才会起作用.
var data = $.parseJSON($('#sdata').val()); var arr = []; for( var name in data ) { arr[name] = data[name]; } var len = arr.length; while( len-- ) { if( arr[len] !== undefined ) { console.log(len,arr[len]); } }