首页 > 编程语言 >JavaScript 实现对 JSON 对象数组数据进行分页处理

JavaScript 实现对 JSON 对象数组数据进行分页处理

时间:2024-10-30 14:43:01浏览次数:1  
标签:const 分页 pageSize JavaScript JSON data id name

JavaScript 实现对 JSON 对象数组数据进行分页处理

在前端 JavaScript 中对 JSON 对象数组进行分页,可以通过以下方式实现:

分页函数

示例代码

假设有一组 JSON 对象数据,比如一组用户信息:

const data = [
  { id: 1, name: "Alice" },
  { id: 2, name: "Bob" },
  { id: 3, name: "Charlie" },
  { id: 4, name: "David" },
  { id: 5, name: "Eva" },
  { id: 6, name: "Frank" },
  { id: 7, name: "Grace" },
  { id: 8, name: "Hannah" },
  { id: 9, name: "Ian" },
  { id: 10, name: "Jack" },
  // ...更多数据
];

要对 data 进行分页,可以编写一个函数 paginate,它接收数据数组、页码和每页条目数,并返回指定页的数据。

实现分页函数

function paginate(data, page = 1, pageSize = 5) {
  // 计算起始和结束索引
  const startIndex = (page - 1) * pageSize;
  const endIndex = startIndex + pageSize;

  // 使用 slice 截取数据
  return data.slice(startIndex, endIndex);
}

示例用法

假设每页显示 5 条数据,可以通过以下方式获取特定页的数据:

// 获取第1页数据
console.log(paginate(data, 1, 5));

// 获取第2页数据
console.log(paginate(data, 2, 5));

// 获取第3页数据
console.log(paginate(data, 3, 5));

分页函数(返回分页信息)

返回分页信息的扩展函数

如果希望获取分页的详细信息(如总页数、当前页、数据条目总数等),可以扩展分页函数:

function paginateWithInfo(data, page = 1, pageSize = 5) {
  const totalItems = data.length;
  const totalPages = Math.ceil(totalItems / pageSize);
  const startIndex = (page - 1) * pageSize;
  const endIndex = startIndex + pageSize;
  const paginatedData = data.slice(startIndex, endIndex);

  return {
    currentPage: page,
    pageSize,
    totalItems,
    totalPages,
    data: paginatedData,
  };
}

示例用法

获取第 2 页分页信息:

console.log(paginateWithInfo(data, 2, 5));
/*
{
  currentPage: 2,
  pageSize: 5,
  totalItems: 10,
  totalPages: 2,
  data: [
    { id: 6, name: "Frank" },
    { id: 7, name: "Grace" },
    { id: 8, name: "Hannah" },
    { id: 9, name: "Ian" },
    { id: 10, name: "Jack" }
  ]
}
*/

通过这些分页方法,可以灵活处理前端的 JSON 对象数组数据,以提升用户的浏览体验。

标签:const,分页,pageSize,JavaScript,JSON,data,id,name
From: https://www.cnblogs.com/yuzhihui/p/18515812

相关文章

  • JavaScript基础知识——黑马JavaWeb学习笔记
    JavaScript基础JavaScript:跨平台、面向对象的脚本语言(脚本语言:不需要编译,浏览器解释完直接运行)作用:控制网页行为,使网页可交互ps:JavaScript与Java是两门完全不同的语言本文为学习黑马程序员JavaWeb开发教程中JS部分学习笔记文章目录JavaScript基础一、JS引入方式1.......
  • 千万级数据深分页查询SQL性能优化实践
    作者:京东零售曹志飞一、系统介绍和问题描述如何在Mysql中实现上亿数据的遍历查询?先来介绍一下系统主角:关注系统,主要是维护京东用户和业务对象之前的关注关系;并对外提供各种关系查询,比如查询用户的关注商品或店铺列表,查询用户是否关注了某个商品或店铺等。但是最近接到了一个新......
  • 前端JavaScript的异步编程:从回调到Promise再到Async/Await
    写在前面在前端开发中,异步编程是一个非常重要的概念。随着JavaScript语言和前端技术的发展,异步编程的模式也在不断演进。本文将带你了解从最初的回调函数(Callback)到Promise,再到现代的Async/Await,这些异步编程模式的演变过程。回调函数(Callback)回调函数是最早期的异步编程......
  • latex workshop在vscode中的settings.json设置
    //latex"latex-workshop.latex.autoBuild.run":"never","latex-workshop.showContextMenu":true,"latex-workshop.intellisense.package.enabled":true,"latex-workshop.message.error.show":fals......
  • Fastjson枚举序列化和反序列化的推荐实现
    一、背景项目中定义了很多dto,包含枚举类型,而且这些枚举全都自定义标志码。比如7001对应某种操作。返回前台时,需要转化为对应的7001,前台传入后台时也希望7001转化为枚举。二、研究思路一开始,研究了fastjson的默认实现。发现只有不自定义类似7001这种默认值的时候,可以自动转化......
  • javascript 数组 filter
    javascript数组filter在JavaScript中,filter方法被用于创建一个新数组,该数组包含通过提供的函数实现的测试的所有元素。解法1:基本使用方法letnumbers=[4,9,16,25,29];letnewNumbers=numbers.filter(num=>num>10);console.log(newNumbers);//......
  • 【SpringMVC】传递json,获取url参数,上传文件
    【传递json数据】【json概念】一种轻量级数据交互格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,其本质上是字符串,负责在不同的语言中数据传递与交换json数据以字符串的形式体现【json字符串与Java对象互转】我们需要在pom.xml中增加对json的依赖【对象转jso......
  • javascript-Web APLs (三)
     事件流指的是事件完整执行过程中的流动路径 说明:假设页面里有个div,当触发事件时,会经历两个阶段,分别是捕获阶段、冒泡阶段 简单来说:捕获阶段是从父到子冒泡阶段是从子到父 实际工作都是使用事件冒泡为主事件捕获DOM.addEventListener(事件类型,事件处......
  • 从零开始的JavaScript基础!
    目录一、JavaScript的概述二、如何在HTML页面中使用JS(一)、行内式 (二)、内嵌式(三)、外链式(四)、基本执行顺序1.从上到下线性执行:2.阻塞行为:(五)、JS输出方式1. alert() 通过浏览器弹出框进行输出 2.document.write() 直接在网页页面中进行输出 3.console.log()......
  • JSON文件转YOLO文件示例
    文章目录前言一、步骤指南二、代码实现1.类别名称到ID的映射2.边界框转换函数3.JSON解码函数4.主程序前言将JSON标注文件转换为YOLO格式通常涉及从JSON文件中提取图像尺寸、对象类别和边界框坐标,并将这些信息格式化为YOLO格式所需的格式。YOLO格式通常要求每行包含......