1. 程式人生 > >javascript如何處理很多數據,類似分頁切換

javascript如何處理很多數據,類似分頁切換

result 個數 mat 表數據 span eset 如何 取整 data

需求:一個用戶列表數據,如果對應列表數據大於10個,就每10個保存到二維數組,後面不足10個的依然放在二維數組尾部

用處:模擬分頁,或者局部刷新

var obj=[
        {
            "list":[
                {a:1},{a:2},{a:3},{a:4},{a:5},{a:6},
                {a:7},{a:8},{a:9}
            ]
        },
        {
            "list":[
                {a:1},{a:2},{a:3},{a:4},{a:5},{a:6},
                {a:
7},{a:8},{a:9},{a:10},{a:11},{a:12}, {a:13},{a:14},{a:15},{a:16},{a:17}, {a:18},{a:19},{a:20},{a:21} ] }, { "list":[ {a:1},{a:2},{a:3},{a:4},{a:5},{a:6}, {a:7},{a:8},{a:9},{a:10},{a:11},{a:12}, {a:
13},{a:14},{a:15},{a:16},{a:17}, {a:18},{a:19},{a:20},{a:21},{a:22}, {a:23},{a:24},{a:25},{a:26},{a:27}, {a:28},{a:29},{a:30},{a:31} ] }, { "list":[ {a:1},{a:2},{a:3},{a:4},{a:5},{a:6}, {a:
7},{a:8},{a:9},{a:10},{a:11},{a:12}, {a:13},{a:14},{a:15},{a:16},{a:17}, {a:18},{a:19},{a:20},{a:21},{a:22}, {a:23},{a:24},{a:25} ] }, { "list":[ {a:1},{a:2},{a:3},{a:4},{a:5},{a:6}, {a:7},{a:8},{a:9},{a:10},{a:11},{a:12}, {a:13},{a:14},{a:15},{a:16},{a:17}, {a:18},{a:19},{a:20},{a:21},{a:22}, {a:23},{a:24},{a:25} ] } ]; //每個list的長度可能為0,無上限 //如果對應的list.length>10,就把對應的list每10個放在二維數組內,不足10個放在二維數組的尾部, //例如第三個有31個,把第三個list替換為: // [ // [{a:1},{a:2}..{a:10}], // [{a:11},{a:12}...{a:20}], // [{a:21}..{30}],[{a:31}] // ] // //該如何一次性獲得所有的二維數組? function resetDate(arr,num){ //1整個數組的長度 var leng=arr.length; for(var i=0;i<leng;i++){ //2 每個列表 var innerList=arr[i].list; // console.log(arr); //3 每個列表的個數,即lenth var innerLength=innerList.length; //如果大於10個 if(innerLength!=0&&innerLength>num){ //如果大於10個的,二維數組外層數組的長度:max,需要上取整 var outerMaxLen=Math.ceil(innerLength/num); // 定義在每個對象上的二維數組外層 // arr[i].outer=Array(outerMaxLen); arr[i].outer=[]; var sliceNum = 0, resIndex = 0; // console.log(result) while (sliceNum < innerLength) { arr[i].outer[resIndex++] = innerList.slice(sliceNum, sliceNum += num); } // 需要用到arr.slice(start,end); console.log(arr[i].outer); } } } resetDate(obj,10); // 法二、,小於10個有點BUG(表示沒看懂),來自:巴神 function adapter(data){ function _splice(list,i){ i = i || 1; list.push(list.splice(0,10)); list.length>10 ? _splice(list,++i):list.push(list.splice(0,list.length-i)); } data.forEach(function(v){ _splice(v.list); }); } adapter(obj); console.log(obj);

javascript如何處理很多數據,類似分頁切換