{
"AA": [
{
"key_name": "category",
"value": "long",
"sortby": "3"
}
],
"BB": [
{
"key_name": "category",
"value": "long",
"sortby": "5"
}
],
"CC": [
{
"key_name": "category",
"value": "short",
"sortby": "1"
}
]
}
このオブジェクトをキー「sortby」で並べ替える必要があり、それは配列内にありますか?誰か助けてもらえますか?
オブジェクトキーの配列を作成し、データ内のプロパティの値に基づいて並べ替えてから、新しいオブジェクトにマップする必要があります。
const data = {
"AA": [
{
"key_name": "category",
"value": "long",
"sortby": "3"
}
],
"BB": [
{
"key_name": "category",
"value": "long",
"sortby": "5"
}
],
"CC": [
{
"key_name": "category",
"value": "short",
"sortby": "1"
}
]
}
const res = Object.keys(data).sort((a, b) => {
return parseInt(data[a][0].sortby, 10) - parseInt(data[b][0].sortby, 10)
});
const sortedData = {};
res.map(key => sortedData[key] = data[key]);
console.log(sortedData)
オブジェクトはjavascriptで変更可能であり、この実装は将来多くの問題を引き起こす可能性があるため、これは良い習慣ではありません。最良の方法は、それらを並べ替えてから、代わりに配列にプッシュすることです。
const data = {
"AA": [
{
"key_name": "category",
"value": "long",
"sortby": "3"
}
],
"BB": [
{
"key_name": "category",
"value": "long",
"sortby": "5"
}
],
"CC": [
{
"key_name": "category",
"value": "short",
"sortby": "1"
}
]
}
const res = Object.keys(data).sort((a, b) => {
return parseInt(data[a][0].sortby, 10) - parseInt(data[b][0].sortby, 10)
}).map(key => ({ key, value: data[key] }));
console.log(res)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加