bnsgt's diary

個人的な備忘と日記

JavaScriptのobjectをvalueで並べ替えたい場合

JavaScriptのobjectは、順番は保障されないとのこと。

teratail.com

なので、配列に変換してsortしたので、メモ。

// 並べ替えたいオブジェクト
const obj = {
  "a": 0,
  "b": 3,
  "c": 1,
  "d": 2,
};

const arr = [];
const keys = Object.keys(obj);
const values = Object.values(obj);

// arrに配列にして格納する
for (let i = 0; i < values.length; i ++) {
  const key = keys[i];
  const value = values[i];
  const obj = {
    key,
    value,
  };
  arr.push(obj);
}

// valueを昇順でソートした配列にする
arr.sort(function(a, b) {
  return a.value - b.value;
});