javascript如何处理很多数据,类似分页切换
需求:一个用户列表数据,如果对应列表数据大于10个,就每10个保存到二维数组,后面不足10个的依然放在二维数组尾部
用处:模拟分页,或者局部刷新
在线DEMO:戳这里
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 每个列表的个数,即lenthvar 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);
法二的跟新版本:小于10已结正常,过多数据的话未测
function adapter(data){function _splice(list,i){i = i || 1;list.push(list.splice(0,10));list.length>10 ? _splice(list,++i):(i>1 && list.push(list.splice(0,list.length-i)));}data.forEach(function(v){_splice(v.list);}); }adapter(obj); console.log(obj);
转载于:https://www.cnblogs.com/-walker/p/6879888.html
javascript如何处理很多数据,类似分页切换相关推荐
- pandas pivot 计算占比_pandas使用9:如何处理时间序列数据
如何处理时间序列数据? import pandas as pdimport matplotlib.pyplot as plt air_quality = pd.read_csv("data/ ...
- (转)大数据量分页存储过程效率测试附代码
大数据量分页存储过程效率测试附代码 在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话. 测试环境 硬件:CPU 酷睿双核T5750 内存: ...
- layui一个表格中怎么接两个接口的值_layer学习笔记之table表格引入数据实现分页...
LayUI是一款免费,开源,轻量级的前端cms框架,适用于企业后端,能快速上手开发,集成了常用的组件,还有完善的文档和社区. 最近一直在学习使用layer的layui框架技术,这个主要表现在于弹出层的 ...
- 【javascript 动态添加数据到 HTML 页面】
今天简单的学习了一下有关对象字面量的定义和 javascript 如何取出对象字面量的值的知识,javascript 动态添加数据到 HTML 页面的问题. [学习目标]有如下的一组数据通过 Ajax ...
- python处理nc文件并输出_利用python如何处理nc数据详解
前言 这两天帮一个朋友处理了些 nc 数据,本以为很简单的事情,没想到里面涉及到了很多的细节和坑,无论是"知难行易"还是"知易行难"都不能充分的说明问题,还是& ...
- 千万级别数据查询优化_MySQL大数据量分页查询方法及其优化
MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...
- easyui datatable ajax 加载数据,ASP.NET easyUI--datagrid 通过ajax请求ASP.NET后台数据的分页查询...
js前台对datagrid的定义代码,如下 mygrid = $('#mytable').datagrid({ fit: true, //自动大小 height: 'auto', rownumbers ...
- mysql一样的查询在我本地很快但是线上很慢_MySQL大数据量分页查询方法及其优化...
MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...
- java操作xml一般都用什么_用Java如何处理XML数据
用Java如何处理XML数据 Java原生内置的处理XML的技术基本有这么几种:DOM,SAX,Stax,Jaxb.那么用Java我们要如何处理XML数据,希望对大家有帮助! DOM :Documen ...
最新文章
- JBOSS java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet
- 深入理解Golang包导入
- 数据结构-单向循环链表、双向循环链表、仿真链表
- [EffectiveC++]item21:Don't try to return a reference when you must return an object
- mac系统,鼠标移动太慢
- 【PyTorch】PixelShuffle
- 夺命雷公狗ThinkPHP项目之----企业网站13之文章列表页的实现(主要是分页的实现)...
- java char 8192_java.net.ProtocolException:预期229个字节,但收到8192
- Hadoop运行错误——could only be replicated to 0 nodes, instead of 1
- 全国计算机网络考试和答案,全国计算机三级《网络技术》复习题及答案2017
- java cjson_使用cJSON
- 关于Egret项目升级引擎出现的问题
- echart-pie
- java检查中断_死神来了怎么判断之java线程中断
- 速看|快速软件开发框架突破信息孤岛,高效实现数字化发展!
- Electron主进程与渲染进程相互通信
- Rimworld Mod教程 第十一章:术语名字
- JAVASE阶段测试试卷
- LiteOS学习(一)任务
- 牛客网试题+答案分析+大牛面试经验(12)
热门文章
- python 微信机器人_Python 微信机器人
- python自由落体_VPython - example - 模拟自由落体运动
- 数组的合并和升序排列_leetcode 33 搜索旋转排序数组
- 如何把一个网页生成一个快捷方式在桌面?_如何打造一个简洁、高效的桌面?
- 设计模式_3_建造者模式
- Django模板中如何将函数的变量作为字典key并获取对应的value
- python五子棋人机对战_Python:游戏:五子棋之人机对战
- 1+X web中级 Laravel学习笔记——Laravel中的路由
- 二、前端pink老师的CSS定位学习笔记(超详细,简单易懂)
- 牛客 String II