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 相关文章推荐
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
Nov 06 Javascript
提取字符串中年月日的函数代码
Nov 05 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
Aug 31 Javascript
学习Node.js模块机制
Oct 17 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
Angular2开发——组件规划篇
Mar 28 Javascript
JS实现的数组去除重复数据算法小结
Nov 17 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
Oct 10 jQuery
如何在node环境实现“get数据解析”代码实例
Jul 03 Javascript
JS 4个超级实用的小技巧 提升开发效率
Oct 05 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 Global定义全局变量使用说明
2013/08/15 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
Angular+Node生成随机数的方法
2017/06/16 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
JS代码优化的8点建议
2020/02/04 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
使用Python的PEAK来适配协议的教程
2015/04/14 Python
Python中使用多进程来实现并行处理的方法小结
2017/08/09 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
Django视图和URL配置详解
2018/01/31 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
python scatter函数用法实例详解
2020/02/11 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
测绘工程专业个人自我评价
2013/12/01 职场文书
库房管理员岗位职责
2014/03/09 职场文书
房屋过户委托书范本
2014/10/07 职场文书
通知的格式范文
2015/04/27 职场文书
汉字听写大会观后感
2015/06/12 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL