【node.js】jsonのソートを行う【sort】

必要なもの

・node.js

JSONデータのソートを行うには?

昇順のソート

let jsonData = JSON.parse(data)
jsonData.sort(function(a,b){
    if(a.property > b.property) return 1 
    if(a.property< b.property) return -1 
    return 0
 })

降順のソート

let jsonData = JSON.parse(data) 
jsonData.sort(function(a,b){
    if(a.property > b.property) return -1 
    if(a.property< b.property) return 1 
    return 0
 })

それぞれ1行目でJSON.parse(data)をしているのでjsonとして扱えるようにしています。

a.propertyのpropertyはjsonのpropertyを指定していますが、単純な数値での比較しか確認していません。日付型などは’date-utils’などを利用し数値として扱えるようにする必要があるかもしれません。

上記のコードはdataの値をソートしたいjsonデータに書き換えるだけで利用出来ます。

そもそもJSONとは

jsonは人間が読みやすい形でデータを扱える便利なものですが、
一つ挙げられる欠点としては「順序が保持されない」ということ。
例えばAPIのresponseでjsonのデータを受け取る場合、1回目と2回目で単純にjsonに書かれているデータの順番が異なります。

そのため順番に拘る部分、例えば 新着順 などで表示したい場合は当然ですがソートが必要になります。
(配列の中にオブジェクトとしてjsonがある場合は不要です)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です