JS根据json数组多个字段排序及json数组常用操作


Posted in Javascript onJune 06, 2019

js 根据json数组多个字段排序的实现代码如下所示:

/**数组根据数组对象中的某个属性值进行排序的方法 
  * 使用例子:newArray.sort(sortByArr(['number'],false)) //表示根据number属性降序排列;若第二个参数不传递,默认表示升序排序
  * @param attr 排序的属性 ['name','sex'...],根据一个字段或者多个字段排序
  * @param rev true表示升序排列,false降序排序
  * */

function sortByArr(arr, rev) {
 if (rev == undefined) {
 rev = 1;
 } else {
 rev = (rev) ? 1 : -1;
 }
 return function(a, b) {
 for (var i = 0; i < arr.length; i++) {
 let attr = arr[i]
 if (a[attr] != b[attr]) {
 if (a[attr] > b[attr]) {
 return rev * 1;
 } else {
 return rev * -1;
 }
 }
 }
}
}

PS:Js 中对 Json 数组的常用操作

我们首先定义一个json数组对象如下:

var persons = [
  {name: "tina", age: 14},
  {name: "timo", age: 15},
  {name: "lily", age: 16},
  {name: "lucy", age: 16}
]

一. 根据对象属性值得到相应对象

//1. 获取 name 等于 lily 的对象
var lily = persons.filter((p) => {
  return p.name == "lily";
});
console.log(lily); //打印结果 [{name: "lily", age: 16}]
//注:filter()方法返回的是一个数组
var twins = persons.filter((p) => {
  return p.age == 16;
});
console.log(twins); //打印结果 [{name: "lily", age: 16},{name: "lucy", age: 16}]

二. 删除其中一个对象

//删除 name 等于 tina 的对象,利用splice()方法
//1. 首先我们要得到这个对象
var tina = persons.filter((p) => {
  return p.name == "tina";
});
//2. 其次得到这个对象在数组中对应的索引
var index = persons.indexOf(tina[0]);
//3. 如果存在则将其删除,index > -1 代表存在
index > -1 && persons.splice(index, 1);
console.log(persons);
//打印结果 [{name: "timo", age: 15}, {name: "lily", age: 16}, {name: "lucy", age: 16}]

三. 修改其中一个对象的属性值

//将 name 等于 timo 的 age 修改为 20
//1. 得到 timo 对象
var timo = persons.filter((p) => {
  return p.name == "timo";
});
//2. 修改age
timo[0].age = 20;

四. 往数组中添加一个对象

//这个最简单了
persons.push({name: "similar", age: 18});

 ——注: 以上的所有操作都会对原数组产生直接影响。

总结

以上所述是小编给大家介绍的JS根据json数组多个字段排序及json数组常用操作,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
filemanage功能中用到的lib.js
Apr 08 Javascript
自动完成JS类(纯JS, Ajax模式)
Mar 12 Javascript
setTimeout和setInterval的区别你真的了解吗?
Mar 31 Javascript
setInterval计时器不准的问题解决方法
May 08 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
微信小程序 label 组件详解及简单实例
Jan 10 Javascript
详解vue-cli之webpack3构建全面提速优化
Dec 25 Javascript
vue-lazyload图片延迟加载插件的实例讲解
Feb 09 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
Aug 08 Javascript
vue excel上传预览和table内容下载到excel文件中
Dec 10 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
Aug 28 Javascript
了解在JavaScript中将值转换为字符串的5种方法
Jun 06 #Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 #Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
Jun 06 #Javascript
详解vue-cli@2.x项目迁移日志
Jun 06 #Javascript
详解新手使用vue-router传参时注意事项
Jun 06 #Javascript
vue-cli配置全局sass、less变量的方法
Jun 06 #Javascript
解决vue组件props传值对象获取不到的问题
Jun 06 #Javascript
You might like
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
JQuery中DOM事件合成用法实例分析
2015/06/13 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
Python psutil模块简单使用实例
2015/04/28 Python
Python内建数据结构详解
2016/02/03 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
销售团队获奖感言
2014/08/14 职场文书
技术入股合作协议书
2014/10/07 职场文书
525心理健康活动总结
2015/05/08 职场文书
预备党员介绍人意见
2015/06/01 职场文书
创业计划书之游泳馆
2019/09/16 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书