我對這個問題的標題。可能不合適,但我的問題是我有以下型別的 json ...
{
"trees":{
"name":"a",
"age":"9",
"height":"10",
"location":"park"
},
"cars":{
"name":"b",
"age":"3",
"height":"10",
"location":"park"
},
"bikes":{
"name":"c",
"age":"110",
"height":"10",
"location":"park"
}
}
現在我想根據年齡 3,9,110 對其進行排序。并以相同的格式獲取此排序資料
{
"cars":{
"name":"b",
"age":"3",
"height":"10",
"location":"park"
},
"trees":{
"name":"a",
"age":"9",
"height":"10",
"location":"park"
},
"bikes":{
"name":"c",
"age":"110",
"height":"10",
"location":"park"
}
};
這種格式對我來說是必不可少的,因為我將它進一步傳遞給另一個 react 子組件,在那里我對其進行了多次操作以將其進一步發送到其他組件。
我在網上搜索并找到了對這個陣列進行排序的方法,其中首先初始化一個陣列,然后只推送 json 的值而不是該陣列中的鍵,然后排序就會發生。該方法作業正常,但我得到的結果陣列與我原來的 json 型別不同,這會導致問題將資料進一步發送到組件。
uj5u.com熱心網友回復:
var data = {
"trees":{
"name":"a",
"age":9,
"height":"10",
"location":"park"
},
"cars":{
"name":"b",
"age":3,
"height":"10",
"location":"park"
},
"bikes":{
"name":"c",
"age":110,
"height":"10",
"location":"park"
}
},
sorted = {};
Object
.keys(data).sort(function(a, b){
return data[a].age - data[b].age;
})
.forEach(function(key) {
sorted[key] = data[key];
});
console.log(sorted);
uj5u.com熱心網友回復:
轉換為鍵值對陣列,然后按age轉換為數字的值的屬性排序,然后從條目陣列轉換回物件。
Object.fromEntries(
Object.entries(data).sort(
([, objA], [,objB]) => Number(objA.age) - Number(objB.age)
)
);
const data = {
"trees": {
"name": "a",
"age": "9",
"height": "10",
"location": "park"
},
"cars": {
"name": "b",
"age": "3",
"height": "10",
"location": "park"
},
"bikes": {
"name": "c",
"age": "110",
"height": "10",
"location": "park"
}
}
const sortedData = Object.fromEntries(
Object.entries(data).sort(([, objA], [,objB]) => Number(objA.age) - Number(objB.age))
);
console.log(sortedData);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385798.html
標籤:javascript 反应 json
上一篇:物件到XML結構
