LoginSignup
2
0

More than 3 years have passed since last update.

JavaScript オブジェクトのキーを値でソートする

Posted at

やりたいこと

Object.jsのオブジェクトのキーを値の降順で並び替えた、sortedKey.jsのような配列を作成したい。

Object.js
let scores = {
    yamada: 60,
    suzuki: 50,
    takahashi: 100,
    tanaka: 80,
    ito: 20
};
sortedKey.js
let sortedKeys = [takahashi, tanaka, yamada, suzuki, ito];

結論

sort.js
let keys = Object.keys(scores); //scoresのキーの配列を作成
let sortedKeys = keys.sort(function(a, b) {
    return scores[b] - scores[a];//scoresの各キーの値でソート(降順)。昇順ならブラケット内のa,bを逆にする。
});
console.log(sortedKeys); // [ 'takahashi', 'tanaka', 'yamada', 'suzuki', 'ito' ]

Object.keys()で元のオブジェクトのキーの配列を作成したあと、比較関数内で元のオブジェクトの値をブラケット記法で取得し、その値を減算することで、キーを値でソートした配列を作成することができた。

sortの引数となる比較関数の仕様については、よろしければこちらの記事をご覧ください。
JavaScript sortにおける比較関数の仕様

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0