如图,JSON数组包含多个对象
要按对象的Levelcode属性排序,LevelCode的数字小的排名靠前
如果LevelCode相同,需要看OK_ID属性,OK_ID不空的排名靠前
排序结果的类型仍为JSON数组
function sortObj(l, n) {
let res = l.Levelcode - n.Levelcode;
if (!res) {
res = l.OK_ID ? 1 : -1
}
return res;
}
ArrObj.sort(sortObj)
谢谢!
将res = l.OK_ID ? 1 : -1 改为 res = l.OK_ID ? -1 :1后是对的
我查了一下ES6的sort方法,参数是一个匿名函数
let res = l.Levelcode - n.Levelcode; //默认按Levelcode升序
if (!res) { //!res指的是res<=0,等于0的时候顺序不变,也就是说Levelcode相同的时候
res = l.OK_ID ? -1 : 1 //这句怎么理解? 按OK_ID先空后有值的顺序,直接写成 if(l.OK_ID) res = -1; 不就可以了吗?
}
理解的可能不对,请指点
@寻找薛定谔的猫: 嗯嗯 可以的
@不邪: 再次感谢!