js中json对象数组按对象属性排序
在实际⼯作经常会出现这样⼀个问题:后台返回⼀个数组中有i个json数据,需要我们根据json中某⼀项进⾏数组的排序。
例如返回的数据结构⼤概是这样:
sort函数 js{
result:[
{id:1,name:'中国银⾏'},
{id:3,name:'北京银⾏'},
{id:2,name:'河北银⾏'},
{id:10,name:'保定银⾏'},
{id:7,name:'涞⽔银⾏'}
]
}
现在我们根据业务需要,要根据id的⼤⼩进⾏排序,按照id⼩的json到id⼤的json顺序重新排列数组的顺序
在js中添加排序的⽅法:
这⾥使⽤JavaScript sort() ⽅法,⾸先解释下这个sort的⽅法
语法:arrayObject.sort(sortby) sortby:可选,规定排序顺序。必须是函数。
如果调⽤该⽅法时没有使⽤参数,将按字母顺序对数组中的元素进⾏排序,说得更精确点,是按照字符编码的顺序进⾏排序。要实现这⼀点,⾸先应把数组的元素都转换成字符串(如有必要),以便进⾏⽐较。
如果想按照其他标准进⾏排序,就需要提供⽐较函数,该函数要⽐较两个值,然后返回⼀个⽤于说明这两个值的相对顺序的数字。⽐较函数应该具有两个参数 a 和 b,其返回值如下:
若 a ⼩于 b,在排序后的数组中 a 应该出现在 b 之前,则返回⼀个⼩于 0 的值。
若 a 等于 b,则返回 0。
若 a ⼤于 b,则返回⼀个⼤于 0 的值。
下⾯开始使⽤sort(sortby) 来进⾏这个排序,并打印到控制台:
function sortId(a,b){
return a.id-b.id
}
result.sort(sortId);
console.log(result);
然后查看控制台,排序成功:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论