🐿
for of文で配列から取得したデータを、再度配列に格納する【ソートさせたい】
作成日:
2022/01/11
1
沼にハマったのでメモ。
やりたいこと
タイトルの通り「for of文で配列から取得したデータを、再度配列に格納」したい。
その後、ソートさせたい。(ソートさせるには配列化しないといけない)
array.pushで配列に格納できるかと思いきや、
なぜか配列数が出力される。
const obj = [
{
amount: 3,
},
{
amount: 2,
},
{
amount: 4,
}
];
const arr = [];
for(let a of obj) {
arr.push(a.amount);
console.log(arr);
}
結果
1
2
3
原因
console.log(arr)
がfor文の中に入っていたため。
解決
以下で解決した。
const obj = [
{
amount: 3,
},
{
amount: 2,
},
{
amount: 4,
}
];
const arr = [];
for(let a of obj) {
arr.push(a.amount);
}
console.log(arr);
結果
[1, 2, 3]
ポイント
arrayはfor文の外で定義している
for文の外でも値は維持できる
勘違い
配列内のオブジェクトをソートするには、特定の値を取り出してソートしないといけないと思っていた。
[
]
名前 | 性別 | 年齢 | 居住区 | 料金 |
---|---|---|---|---|
山田 | 男性 | 22 | 東京 | 10,000 |
鈴木 | 女性 | 24 | 埼玉 | 8,000 |
山本 | 男性 | 20 | 千葉 | 6,000 |
例えば、ここから年齢を取り出して、それを基準にソートする。
「でもどうやってやるんだ?」となった。
しかし、実際は値を取り出さなくてもオブジェクト丸ごとソートする方法があった。
・配列内のオブジェクトを、ある値を基準にして、丸ごとソートする
https://ticketnote.dev/ticket/PyEoE2vDKxMqmMQ2JJRn
事業会社にてコーダーをしています。制作は6年目。
インプットしたことをアウトプットしています。