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 相关文章推荐
关闭ie窗口清除Session的解决方法
Jan 10 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
Aug 11 Javascript
JS经典正则表达式笔试题汇总
Dec 15 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
浅谈Node异步编程的机制
Oct 18 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
May 25 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
Jun 17 Javascript
JS端基于download.js实现图片、视频时直接下载而不是打开预览
May 09 Javascript
详解vue 组件注册
Nov 20 Vue.js
了解在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垃圾回收机制简单说明
2010/07/22 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
php实现高效获取图片尺寸的方法
2014/12/12 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
bootstrap 设置checkbox部分选中效果
2017/04/20 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
解决vue里a标签值解析变量,跳转页面,前面加默认域名端口的问题
2020/07/22 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
[37:45]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS Orenda
2014/05/22 DOTA
Python的Flask框架与数据库连接的教程
2015/04/20 Python
python rsa 加密解密
2017/03/20 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
英文简历中的自我评价用语
2013/12/09 职场文书
新浪微博实习心得体会
2014/01/27 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
教师节寄语2015
2015/03/23 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL
python元组打包和解包过程详解
2021/08/02 Python