博客
关于我
将Js数组对象中的某个属性值升序排序,并指定数组中的某个对象移动到数组的最前面
阅读量:408 次
发布时间:2019-03-05

本文共 1523 字,大约阅读时间需要 5 分钟。

需求整理

本篇文章主要实现的是将一个数组中的对象属性值通过升序方式排序,并能够指定对应的数组对象移动到程序的最前面。

数组如下所示:

var arrayData= [{name: "夏明", Id:24}, {name: "小红", Id: 25},{name: "大袁", Id: 22},{name: "大姚", Id: 23},{name: "小芳", Id: 18}];

首先将数组中的Id值通过升序方式排序:

//源数组var arrayData= [{name: "夏明", Id:24}, {name: "小红", Id: 25},{name: "大袁", Id: 22},{name: "大姚", Id: 23},{name: "小芳", Id: 18}];
//重写排序方法var compare = function (attribute) { return function (obj1, obj2) { var val1 = obj1[attribute]; var val2 = obj2[attribute]; if (val1 < val2) { return -1; } else if (val1 > val2) { return 1; } else { return 0; } } var newArrayData=arrayData.sort(compare('Id')); //通过Id排序完成后的数组console.log(newArrayData);

排序完成后输出的值:

[{ name: "大袁", Id: 22 },  { name: "大姚", Id: 23 }, { name: "夏明", Id: 24 },{ name: "小红", Id: 25 }]

找到Id为23的对象,移动到数组的最前面去(注意Id值唯一):

实现原理:因为移除数组对象需要找到对应数组对象的下标索引才能进行移除,现在我们需要移除Id=23的对象,让其排到最前面去(先找到对象下标,然后把给数组对象赋值给temporaryArry临时数组,然后在通过下标移除newArrayData中的该对象值,最后将arrayData等于temporaryArry.concat(newArrayData)重新渲染数组数据)。

代码实现:

//创建临时数组var  temporaryArry=[];//找到数组中Id=23的下标索引(从0开始)let currentIdx=newArrayData.findIndex(v=>v.Id==23);console.log('Id=23的索引值为:',currentIdx);//把Id=23的对象赋值给临时数组temporaryArry.push(newArrayData[currentIdx]);//移除数组newArray中Id=23的对象newArrayData.splice(currentIdx,1);//从start[一般为对象的索引]的位置开始向后删除delCount个元素console.log('移除后的数据',newArrayData);//重新渲染数组newArrayData=temporaryArry.concat(newArrayData);	console.log(newArrayData);

输出结果:

[{ name: "大姚", Id: 23 }, { name: "小芳", Id: 18 }, { name: "大袁", Id: 22 }, { name: "夏明", Id: 24 },{ name: "小红", Id: 25 }]

转载地址:http://yqozz.baihongyu.com/

你可能感兴趣的文章
python基于flask搭建http服务(一)—— 实现数据查询和Excel导出
查看>>
Python块键盘/鼠标输入
查看>>
python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
查看>>
python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
查看>>
python在gpu上运行_【python】python开启GPU加速
查看>>
Python在def函数中使用for循环
查看>>
Python在def函数中使用for循环
查看>>
Python在Conda环境中,但在Windows虚拟环境中没有激活
查看>>
python系列【仅供参考】:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法
查看>>
python图像条状状噪声,使用PYTHON PIL从验证码图像中删除背景嘈杂的线条
查看>>
Python图像处理:从内存加载jpeg
查看>>
python固定后缀(名物化词汇)词频统计:抽取+统计+可视化
查看>>
python商品评论数据采集与分析可视化系统 Flask框架 requests爬虫 NLP情感分析 毕业设计 源码
查看>>
python商品数据分析可视化系统(带爬虫)京东销售数据分析 计算机毕业设计 源码下载
查看>>
python商品库存管理系统 django框架 商品网站 MySQL数据库 源码下载 计算机毕业设计
查看>>
Python哪个版本最稳定好用2023.10.19
查看>>
Python和黑客技术的渊源
查看>>
Python和RF编写接口自动化
查看>>
Python和RF编写web自动化
查看>>
python和js哪个难_【Python】记一次学习,Python 与 js 在实现闭包时的差异
查看>>