sort

object sort

sorterにparamを使った比較式が必要。

fn.oSort=(o,sorter)=>{return Object.keys(o).map(d=>o[d]).sort(sorter)}
//smaller
let a=fn.oSort(obj,(a,b)=>{return a.num-b.num})

配列化するときにobject名は失われてしまう。paramに入れるなど考慮が必要。

let fn={}
fn.oSort=(o,sorter)=>{return Object.keys(o).map(d=>o[d]).sort(sorter)}

let obj={
 'xxxx':{num:'1',data:'1xxx top' }
 ,'yyyy':{num:'4',data:'4xxx' }
 ,'zzzz':{num:'5',data:'5xxx' }
 ,'gggg':{num:'1',data:'1xxx middle' }
 ,'ppp':{num:'3',data:'3xxx' }
 ,'qqqq':{num:'1',data:'1xxx end' }
 ,'xxrega':{num:'0',data:'0xxx' }
}

let a=fn.oSort(obj,(a,b)=>{return a.num-b.num})
console.log(a);
/*
0:{num: "0", data: "0xxx"}
1:{num: "1", data: "1xxx top"}
2:{num: "1", data: "1xxx middle"}
3:{num: "1", data: "1xxx end"}
4:{num: "3", data: "3xxx"}
5:{num: "4", data: "4xxx"}
6:{num: "5", data: "5xxx"}
*/