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 相关文章推荐
个人总结的一些关于String、Function、Array的属性和用法
Jan 10 Javascript
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
Jquery异步提交表单代码分享
Mar 26 Javascript
使用jQuery实现Web页面换肤功能的要点解析
May 12 Javascript
JavaScript Uploadify文件上传实例
Feb 28 Javascript
原生js编写2048小游戏
Mar 17 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
Sep 18 Javascript
探索Vue高阶组件的使用
Jan 08 Javascript
详解vue2.6插槽更新v-slot用法总结
Mar 09 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
Jul 24 Javascript
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
一个目录遍历函数
2006/10/09 PHP
用PHP函数解决SQL injection
2006/12/09 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
PHP时间类完整代码实例
2021/02/26 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jQuery实现单击和鼠标感应事件
2015/02/01 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
jQuery实现穿梭框效果
2021/01/19 jQuery
利用python实现平稳时间序列的建模方式
2020/06/03 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
开发中都用到了那些设计模式?用在什么场合?
2014/08/21 面试题
校园报刊亭创业计划书
2014/01/02 职场文书
村委会贫困证明
2014/01/14 职场文书
人力资源部岗位职责
2015/02/11 职场文书
家长意见书
2015/06/04 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python