从后台传来的数据本来是这样的 {"2013-2014":{"2":{...},"1":{...}}}
但是ajax后接收到的变成了这样: 所以我打算在前端渲染的时候调换一下渲染顺序,能否倒过来循环呢? 或者是否有其它方法解决解决以上问题?
光阴似箭催人老,日月如移越少年。
var indexes = Object.keys(obj).sort(function(a,b){return +a - +b;}); for(var i=0; i<indexes.length; i++) { console.log(obj[indexes[i]]); }
使用了 ES5 方法不兼容老浏览器,需要 polyfill 一下。
'use strict'; var object = { '2013-2014': [ {'id': 2}, {'id': 1} ] }; for (var index in object['2013-2014']) { console.log(object['2013-2014'][index].id); }
不知道后台返回数组能不能符合你的要求,返回一个数组就不会出现乱序的问题
返回数组,如果id不是顺序的话(如2,1,300,2500,785...),就用{"2013-2014":[{"id":2,...},...]}这样的,否则用{"2013-2014":[{...},...]}这样的。
2,1,300,2500,785...
{"2013-2014":[{"id":2,...},...]}
{"2013-2014":[{...},...]}
for(var i=0;i<arr.length;i++){ (function(){ // 此处this就是后台传来的数据对应部分 }).call(arr[i]); }
for(var i in arr){ console.log(arr[arr.length-i-1]); }
使用了 ES5 方法不兼容老浏览器,需要 polyfill 一下。
不知道后台返回数组能不能符合你的要求,返回一个数组就不会出现乱序的问题
返回数组,如果id不是顺序的话(如
2,1,300,2500,785...
),就用{"2013-2014":[{"id":2,...},...]}
这样的,否则用{"2013-2014":[{...},...]}
这样的。for(var i in arr){
console.log(arr[arr.length-i-1]);
}