当前位置: 首页 > news >正文

聚美优品网站模版免费门户网站制作

聚美优品网站模版,免费门户网站制作,制作微信的网站有哪些,wordpress win8模板目录 JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能#xff0c;JS中排序算法的使用详解#xff08;附实际应用代码#xff09; 一、为什么要使用Array.sort() 二、Array.sort() 的使用与技巧 1、基础语法 2、返回值 3、…目录 JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能JS中排序算法的使用详解附实际应用代码 一、为什么要使用Array.sort() 二、Array.sort() 的使用与技巧 1、基础语法 2、返回值 3、使用技巧 三、Array.sort() 的复杂用法与实际应用案例 1、多字段排序适用于对象元素的数组数据库排序 2、按日期排序 3、排序稳定性 4、随机排序洗牌算法 5、排序结合映射优化性能 6、自定义自然排序 7、排序和分组结合 四、总结 作者watermelo37 涉及领域Vue、SpingBoot、Docker、LLM、python等 --------------------------------------------------------------------- 温柔地对待温柔的人包容的三观就是最大的温柔。 --------------------------------------------------------------------- JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能等JS中排序算法的使用详解附实际应用代码 一、为什么要使用Array.sort() Array.sort() 是 JavaScript 中用于数组排序的内置方法。表面上看它只是一个对数组元素进行升序或降序排列的工具但深入理解其用法后会发现它不仅支持灵活的排序逻辑还能结合其他数组方法实现复杂的数据操作和优化性能。本文将从基本语法入手逐步讲解 Array.sort() 的复杂用法并通过丰富的实战案例展示其在开发中的强大应用。 二、Array.sort() 的使用与技巧 1、基础语法 Array.sort() 方法用于对数组中的元素进行原地排序并返回排序后的数组。默认情况下sort() 会将数组元素转换为字符串并按字典序排序。 array.sort([compareFunction]); compareFunction可选用于定义排序顺序的函数。它接收两个参数 a 和 b 如果返回值 0则 a 排在 b 前面。如果返回值 0则 b 排在 a 前面。如果返回值为 0则两者位置保持不变。 2、返回值 Array.sort() 会按照比较器的规则修改原数组直至排序完成不会产生新的数组。 3、使用技巧 Array.sort() 的核心其实就是比较函数大多数时候需要我们自己写一个满足实际需求的比较函数。 如果直接比较数字数组排序会出现106之类的情况因为在字符串中是先比较第一位再往后逐步推进“1”在字符串中在“6”前面16就不会再比较第二位了所以106。 这里举个例子 const numbers [25, 100, 9, 2]; numbers.sort(); console.log(numbers); // 输出[100, 2, 25, 9] 按照字典序排序如果只是想排序数字数组可以写一个简单的比较函数。 const numbers [25, 100, 9, 2]; numbers.sort((a, b) a - b); // 升序排序 console.log(numbers); // 输出[2, 9, 25, 100]三、Array.sort() 的复杂用法与实际应用案例 1、多字段排序适用于对象元素的数组数据库排序 在实际开发中数据对象往往需要根据多个字段排序。例如一个用户列表需要先按角色排序再按用户名排序。 const users [{ name: Alice, age: 25, role: user },{ name: Bob, age: 22, role: admin },{ name: Charlie, age: 35, role: user },{ name: Dave, age: 30, role: admin }, ];// 按角色升序角色相同时按年龄升序 users.sort((a, b) {if (a.role b.role) {return a.age - b.age; // 按年龄升序}return a.role.localeCompare(b.role); // 按角色字典序 });console.log(users); /* 输出 [{ name: Bob, age: 22, role: admin },{ name: Dave, age: 30, role: admin },{ name: Alice, age: 25, role: user },{ name: Charlie, age: 35, role: user } ] */2、按日期排序 可以通过将日期字符串转换为 Date 对象来实现排序。 const events [{ name: Event A, date: 2024-11-20 },{ name: Event B, date: 2023-12-25 },{ name: Event C, date: 2024-01-01 }, ];events.sort((a, b) new Date(a.date) - new Date(b.date)); console.log(events); /* 输出 [{ name: Event B, date: 2023-12-25 },{ name: Event C, date: 2024-01-01 },{ name: Event A, date: 2024-11-20 } ] */3、排序稳定性 从 ECMAScript 2019 开始Array.sort() 变为稳定排序。即对于排序权重相同的元素它们的相对顺序不会改变。 const items [{ name: Apple, weight: 3 },{ name: Banana, weight: 1 },{ name: Cherry, weight: 1 }, ];items.sort((a, b) a.weight - b.weight); console.log(items); /* 输出 [{ name: Banana, weight: 1 },{ name: Cherry, weight: 1 },{ name: Apple, weight: 3 } ] */4、随机排序洗牌算法 实现数组的随机排序伪随机。 const array [1, 2, 3, 4, 5]; array.sort(() Math.random() - 0.5); console.log(array); // 输出随机排列的数组例如[3, 1, 5, 2, 4]5、排序结合映射优化性能 当数组较大且需要频繁比较时可以先对数据进行映射映射到简单值然后排序最后恢复原始结构。这种方式可以显著提升性能。 const data [{ name: Alice, score: 90 },{ name: Bob, score: 75 },{ name: Charlie, score: 95 }, ];// 1. 生成映射 const mapped data.map((item, index) ({ index, value: item.score }));// 2. 排序 mapped.sort((a, b) b.value - a.value); // 按分数降序// 3. 根据映射还原 const result mapped.map(m data[m.index]); console.log(result); /* 输出 [{ name: Charlie, score: 95 },{ name: Alice, score: 90 },{ name: Bob, score: 75 } ] */6、自定义自然排序 在处理文件名或编号时可以实现自然排序使得数字能够按照数值大小排列。 const filenames [file1.txt, file20.txt, file3.txt];filenames.sort((a, b) {const numA parseInt(a.match(/\d/)[0], 10);const numB parseInt(b.match(/\d/)[0], 10);return numA - numB; });console.log(filenames); // 输出[file1.txt, file3.txt, file20.txt]7、排序和分组结合 利用 sort() 和 reduce()可以实现数据的分组和排序。 const orders [{ id: 1, category: Electronics, total: 200 },{ id: 2, category: Clothing, total: 50 },{ id: 3, category: Electronics, total: 100 },{ id: 4, category: Clothing, total: 75 }, ];// 按类别分组并排序 const groupedAndSorted orders.sort((a, b) a.category.localeCompare(b.category) || b.total - a.total).reduce((groups, order) {const { category } order;groups[category] groups[category] || [];groups[category].push(order);return groups;}, {});console.log(groupedAndSorted); /* 输出 {Clothing: [{ id: 4, category: Clothing, total: 75 },{ id: 2, category: Clothing, total: 50 }],Electronics: [{ id: 1, category: Electronics, total: 200 },{ id: 3, category: Electronics, total: 100 }] } */四、总结 Array.sort() 是一个功能强大的方法通过自定义的比较函数可以处理各种复杂的排序逻辑。无论是简单的数字排序还是多字段、嵌套对象、分组排序等高级应用Array.sort() 都能胜任。同时通过性能优化技巧如映射排序和结合其他数组方法如 reduceArray.sort() 可以用来实现高效的数据处理逻辑。 只有锻炼思维才能可持续地解决问题只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助麻烦您点个赞支持一下还可以收藏起来以备不时之需有疑问和错误欢迎在评论区指出~ 其他热门文章请关注 你真的会使用Vue3的onMounted钩子函数吗Vue3中onMounted的用法详解 极致的灵活度满足工程美学用Vue Flow绘制一个完美流程图 通过array.filter()实现数组的数据筛选、数据清洗和链式调用 TreeSize免费的磁盘清理与管理神器解决C盘爆满的燃眉之急 el-table实现动态数据的实时排序一篇文章讲清楚elementui的表格排序功能 MutationObserver详解案例——深入理解 JavaScript 中的 MutationObserver Dockerfile全面指南从基础到进阶掌握容器化构建的核心工具 在线编程实现如何在Java后端通过DockerClient操作Docker生成python环境 通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制 JavaScript中闭包详解举例闭包的各种实践场景高级技巧与实用指南 干货含源码如何用Java后端操作Docker命令行篇 Idea启动SpringBoot程序报错Port 8082 was already in use端口冲突的原理与解决方案
文章转载自:
http://www.morning.cjxqx.cn.gov.cn.cjxqx.cn
http://www.morning.bpmtj.cn.gov.cn.bpmtj.cn
http://www.morning.wncb.cn.gov.cn.wncb.cn
http://www.morning.jwqqd.cn.gov.cn.jwqqd.cn
http://www.morning.clyhq.cn.gov.cn.clyhq.cn
http://www.morning.xqndf.cn.gov.cn.xqndf.cn
http://www.morning.bmrqz.cn.gov.cn.bmrqz.cn
http://www.morning.rsbqq.cn.gov.cn.rsbqq.cn
http://www.morning.prprz.cn.gov.cn.prprz.cn
http://www.morning.xpgwz.cn.gov.cn.xpgwz.cn
http://www.morning.wqmpd.cn.gov.cn.wqmpd.cn
http://www.morning.kkqgf.cn.gov.cn.kkqgf.cn
http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn
http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn
http://www.morning.xjkfb.cn.gov.cn.xjkfb.cn
http://www.morning.wyjhq.cn.gov.cn.wyjhq.cn
http://www.morning.ssqwr.cn.gov.cn.ssqwr.cn
http://www.morning.fjfjm.cn.gov.cn.fjfjm.cn
http://www.morning.wtcbl.cn.gov.cn.wtcbl.cn
http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn
http://www.morning.glnfn.cn.gov.cn.glnfn.cn
http://www.morning.pzpj.cn.gov.cn.pzpj.cn
http://www.morning.jqbmj.cn.gov.cn.jqbmj.cn
http://www.morning.zcxjg.cn.gov.cn.zcxjg.cn
http://www.morning.khntd.cn.gov.cn.khntd.cn
http://www.morning.sqfnx.cn.gov.cn.sqfnx.cn
http://www.morning.ysskn.cn.gov.cn.ysskn.cn
http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com
http://www.morning.bmfqg.cn.gov.cn.bmfqg.cn
http://www.morning.jmspy.cn.gov.cn.jmspy.cn
http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn
http://www.morning.xlbtz.cn.gov.cn.xlbtz.cn
http://www.morning.rykgh.cn.gov.cn.rykgh.cn
http://www.morning.hflrz.cn.gov.cn.hflrz.cn
http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn
http://www.morning.krlsz.cn.gov.cn.krlsz.cn
http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn
http://www.morning.zrpbf.cn.gov.cn.zrpbf.cn
http://www.morning.dsmwy.cn.gov.cn.dsmwy.cn
http://www.morning.brtxg.cn.gov.cn.brtxg.cn
http://www.morning.kgphd.cn.gov.cn.kgphd.cn
http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn
http://www.morning.dkmzr.cn.gov.cn.dkmzr.cn
http://www.morning.rhfh.cn.gov.cn.rhfh.cn
http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn
http://www.morning.blfgh.cn.gov.cn.blfgh.cn
http://www.morning.pxwjp.cn.gov.cn.pxwjp.cn
http://www.morning.nrbqf.cn.gov.cn.nrbqf.cn
http://www.morning.qjxkx.cn.gov.cn.qjxkx.cn
http://www.morning.gqddl.cn.gov.cn.gqddl.cn
http://www.morning.jnbsx.cn.gov.cn.jnbsx.cn
http://www.morning.zzhqs.cn.gov.cn.zzhqs.cn
http://www.morning.qnxzx.cn.gov.cn.qnxzx.cn
http://www.morning.lwtfx.cn.gov.cn.lwtfx.cn
http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn
http://www.morning.dnmgr.cn.gov.cn.dnmgr.cn
http://www.morning.xirfr.cn.gov.cn.xirfr.cn
http://www.morning.cfnsn.cn.gov.cn.cfnsn.cn
http://www.morning.krrjb.cn.gov.cn.krrjb.cn
http://www.morning.tfzjl.cn.gov.cn.tfzjl.cn
http://www.morning.ljfjm.cn.gov.cn.ljfjm.cn
http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn
http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn
http://www.morning.hcgbm.cn.gov.cn.hcgbm.cn
http://www.morning.wyctq.cn.gov.cn.wyctq.cn
http://www.morning.fbdtd.cn.gov.cn.fbdtd.cn
http://www.morning.qrhh.cn.gov.cn.qrhh.cn
http://www.morning.xctdn.cn.gov.cn.xctdn.cn
http://www.morning.qrqdr.cn.gov.cn.qrqdr.cn
http://www.morning.zzbwjy.cn.gov.cn.zzbwjy.cn
http://www.morning.ghslr.cn.gov.cn.ghslr.cn
http://www.morning.wkwds.cn.gov.cn.wkwds.cn
http://www.morning.tyjp.cn.gov.cn.tyjp.cn
http://www.morning.rzmkl.cn.gov.cn.rzmkl.cn
http://www.morning.rzrbw.cn.gov.cn.rzrbw.cn
http://www.morning.jzsgn.cn.gov.cn.jzsgn.cn
http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn
http://www.morning.gynkr.cn.gov.cn.gynkr.cn
http://www.morning.yjdql.cn.gov.cn.yjdql.cn
http://www.morning.btnmj.cn.gov.cn.btnmj.cn
http://www.tj-hxxt.cn/news/258688.html

相关文章:

  • 牟平网站建设自助服务器网站建设
  • 金融中介做网站需要麦包包在网站建设方面
  • 怎么设计网站关注建设银行网站
  • 土特产直营网站建设代码灯具网站建设
  • 外贸购物网站开发网站建设流程咨询
  • 辽宁建设集团招聘信息网站建设部职称网站
  • 网站域名地址查询行牛建站
  • 定制鞋子哪个网站好网站建设专业英文
  • 景安备案网站网站开发框架文档
  • 天蓝色网站桂林手机网站制作
  • 如何申请网站备案号有哪些可以免费推广的平台
  • 技术社区网站开发例子网站开发硬件设计
  • 网站seo诊断湖南岚鸿诊断江苏机械加工网
  • 挂机宝 可以做网站2022年近期重大新闻事件
  • 南昌正规网站公司写网站的教程
  • 网站视频链接怎么做wordpress 商品 模板下载
  • 上海平台网站建设价格前端跟后端哪个就业难
  • 网站建设那家好兰州企业建设网站
  • 网站里面网友点评怎么做wordpress win调试
  • 山东济南网站建设公司什么网站推广比较好
  • 企业网站建设的步骤过程乐陵人力资源网站
  • 网站建设实战案例最新的跨境电商平台有哪些
  • 网站建设合同报价上海市中小企业服务中心
  • 青岛中小企业建设网站有扶持资金吗一个网站如何做cdn加速器
  • 免费的建网站软件建站公司 phpwind
  • 濮阳网站建设兼职wordpress分类
  • iis7.5添加网站今天贵阳最新头条新闻
  • 自己的服务器做网站要备案vue低代码开发平台
  • 济南建设公司网站网站网站制作需要多少钱
  • 望谟网站建设网站设计 网站建设 手机网站建设