• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 解决JavaScript中数组排序sort不发生改变

解决JavaScript中数组排序sort不发生改变

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了JavaScript数组排序,sort不发生改变等相关知识,希望对您有所帮助

解决JavaScript中数组排序sort不发生改变


最近在做一个项目,Ajax从后台返回数据后,前端用js处理时,发现无论如何使用sort排序,最终要么是没改变,要么只改变最后一次的排序,折腾了很久,最后查了查资料才发现,js中区分浅拷贝和深拷贝。

var provinceConfirmedCount = data;var provinceDeadCount = data;var provinceCuredCount = data;provinceConfirmedCount.sort(sortBy(("provinceConfirmedCount")));provinceDeadCount.sort(sortBy(("provinceDeadCount")));provinceCuredCount.sort(sortBy(("provinceCuredCount")));console.log(provinceConfirmedCount); //不生效console.log(provinceDeadCount); //不生效console.log(provinceCuredCount); //生效 //比较数组对象function sortBy(field) {    return function(a,b) {        return parseInt(b[field]) - parseInt(a[field]);    }}

浅拷贝、深拷贝与赋值

这三个的区别无法就是改变数据的时候,是如何改变,为了简单明了,用一张表最快理解:

是否指向同一对象第一层为基本数据类型原数据中包含子对象
赋值是会使原数据一同改变会使原数据一同改变浅拷贝否不会使原数据一同改变会使原数据一同改变深拷贝是不会使原数据一同改变不会使原数据一同改变

解决方案

既然知道了原理,这里的需求是需要全部改变,所以我们可以采用JQuery中的extend方法来处理:

var provinceConfirmedCount = $.extend([], data);var provinceDeadCount = $.extend([], data);;var provinceCuredCount = $.extend([], data);; provinceConfirmedCount.sort(sortBy(("provinceConfirmedCount")));provinceDeadCount.sort(sortBy(("provinceDeadCount")));provinceCuredCount.sort(sortBy(("provinceCuredCount"))); console.log(provinceConfirmedCount);console.log(provinceDeadCount);console.log(provinceCuredCount);

语法:$.extend( target, [object1], [objectN] )其中,target为目标类型,这里我用的是数组[],还可以是{},可根据实际情况处理。 从后面的[object1], [objectN]我们可以知道,extend是可以将多个待处理对象合并成一个目标类型的对象。



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 解决JavaScript中数组排序sort不发生改变

相关文章

  • 2022-04-29如何解决php错误代码0x80070002问题
  • 2022-04-29浅谈Bootstrap Tab标签页切换图表显示问题的解决方法
  • 2022-04-29描述标签 description tag还有必要优化吗?
  • 2022-04-29Discuz论坛更换域名,详细文件修改步骤
  • 2022-04-292018最新手机号验证正则表达式方法
  • 2022-04-29帝国CMS内容字段域名替换函数
  • 2022-04-29CSS如何实现元素不随滚动条滚动
  • 2022-04-29长尾关键词挖掘的技巧,你知道吗?
  • 2022-04-29CSS3怎么实现卡片翻转效果
  • 2022-04-29分享几种实用的Node.js调试方法,快来收藏吧!!

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • DEDECMS网页TITLE标签修改的利于SEO优化
    • 使用thinkphp3.2.3开发微信授权登录详细教程
    • 帝国CMS灵动标签去除重复标题信息
    • 怎么为WordPress上下篇文章链接添加缩略图
    • Photoshop绘制玻璃质感水晶按钮教程
    • PhotoShop+coreldRAW打造喜迎国庆节海报制作教程
    • JavaScript中字符串(string)如何转json
    • PhotoShop简单制作抽象拼色文字特效教程
    • PHP如何使用Callback/Callable类型
    • 分享thinkphp withCredentials跨域问题解决思路

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有