javascript如何處理很多資料,類似分頁切換

來源:互聯網
上載者:User

標籤:ons   長度   date   個數   span   表資料   index   dap   asc   

需求:一個使用者列表資料,如果對應列表資料大於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如何處理很多資料,類似分頁切換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.