JavaScriptで配列がオブジェクトの場合、Sort()で並び替えても予測した結果にならない場合があります。下記のようなオブジェクトが配列になった変数をSort()したい場合、オブジェクト内のどのエレメントをSort対象とするのかを指定する必要があります。
let x = [{name: "ココナ"},{name: "Votoms"},{name: "ゴウト"},{name: "キリコ"},{name: "バニラ"},{name: "フィアナ"}]
この変数xの配列内オブジェクトのnameというエレメントをSort対象とした場合のコード例です。
x.sort((a, b) =>{ return (a.name <= b.name)? -1 : 1 })
上記のように記述すればnameというエレメントでSortできます。結果は下のようになります。
さらにSortされたあとにidというエレメントを追加して番号をふる場合のコード例です。
let x = [{name: "ココナ"},{name: "Votoms"},{name: "ゴウト"},{name: "キリコ"},{name: "バニラ"},{name: "フィアナ"}] x.sort((a, b) =>{ return (a.name <= b.name)? -1 : 1 }).forEach((aValue,index1,_my) => { let newKey = `id` aValue[newKey ] = index1 })
上のコードを実行すると結果です。