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

2023-10-18 帮手 By:芷兰

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

    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是可以将多个待处理对象合并成一个目标类型的对象。

推荐教程:《JS教程》

展开全文
猜你感兴趣
关于爱的名言 关于爱的名人名言 关于爱的名言

关于爱的名言 关于爱的名人名言 关于爱的名言

1、爱,可以创造奇迹乔迈被摧毁的爱,一旦重新修建好,就比原来更宏伟,更美,更顽强。——莎士比亚2、爱叫懦夫变得大胆,却叫勇士变成懦夫。——莎士比亚3、真诚的爱在奉献的时候最为丰富。——盖贝尔4、爱别人,也被别人爱,这就是

11-10 351阅读
白头鹎可以家养吗 饲养白头鹎吃什么 白头鹎鸟蛋如何孵化

白头鹎可以家养吗 饲养白头鹎吃什么 白头鹎鸟蛋如何孵化

1、白头鹎可以家养,鹎科鸟类多食虫、兼食果实,较难达到人工繁殖。2、一般饲养白头鹎是为听其悦耳鸣声,故多选择雄鸟。白头鹎雌雄羽色相似,较难区分。有经验的人可根据雄鸟胸部灰色较深,雌鸟浅淡,雄鸟枕部白色清晰,雌鸟稍发污等特

11-10 396阅读
巴黎圣母院是什么建筑 巴黎圣母院是哥特式的建筑 巴黎圣母院是什么建筑

巴黎圣母院是什么建筑 巴黎圣母院是哥特式的建筑 巴黎圣母院是什么建筑

1、巴黎圣母院是一种哥特式的建筑,它的建筑风格也比较独特,也是欧洲建筑史上的一个重要标志。2、巴黎圣母院大教堂(Cathédrale Notre Dame de Paris)是一座位于塞纳河畔、法国巴黎市中心、西堤岛上的

11-10 347阅读
巴沙鱼的做法 做巴沙鱼的步骤 如何做巴沙鱼

巴沙鱼的做法 做巴沙鱼的步骤 如何做巴沙鱼

1、做法:巴沙鱼洗净后,斜刀切成薄片,不能切得太薄,容易碎掉。鱼片中加入适量的淀粉、蛋清、黑胡椒、料酒和盐,抓匀腌渍10分钟。2、准备好配料:干红辣椒段花椒粒、姜片和葱段。锅中放油,加入花椒粒小火炒至出麻香味。3、加入葱

11-10 460阅读
剖析JavaScript中8个常见的陷阱

剖析JavaScript中8个常见的陷阱

这里我们针对JavaScript初学者给出一些技巧和列出一些陷阱。如果你已经是一个砖家,也可以读一读。1. 你是否尝试过对数组元素进行排序?JavaScript默认使用字典序(alphanumeric)来排序。因此,[1

10-18 340阅读
JS家的排序算法  前端

JS家的排序算法 前端

当年,想凭借抱Java大腿火一把而不惜把自己名字给改了的JavaScript(原名LiveScript),如今早已光芒万丈。node JS的出现更是让JavaScript可以前后端通吃。虽然Java依然制霸企业级软件开发

10-18 431阅读