如何在 react-native 中对嵌套对象数据进行排序
How to sort the nested object data in react-native
{
"lion":{
"age_in_years":"10",
"name":"king",
"country":"africa"
},
"elephant":{
"age_in_years":"15",
"name":"hero",
"country":"usa"
},
"racoon":{
"age_in_years":"5",
"name":"thanos",
"country":"syria"
},
}
这是我在 react-native 中通过网络套接字获取的数据。我想根据“age_in_years”按升序对其进行排序。所以最老的动物数据应该显示在顶部,最小的数据显示在最后。
将值存储在数组中并进行排序。
const numbers = [info.lion.age_in_years, info.elephant.age_in_years, info.racoon.age_in_years];
const ascNumbers = numbers.sort((a,b) => a-b);
如果需要降序,可以这样:
const descNumbers = numbers.sort((a,b) => b-a);
你最好使用如下所示的对象数组,首先将其映射到数组并解析 age_in_years
并对其进行排序。
const obj2Array = Object.entries(<YourObject>).map(([key, value]) => ({...value, _id: key, age_in_years: parseInt(value.age_in_years)}));
const sorted = obj2Array.sort((a, b) => a.age_in_years - b.age_in_years);
然后你可以使用.reduce
如果你想要返回对象,但是你可以使用排序数组来渲染它。
按年龄从大到大排序
// use slice() to copy the array
var byAge = array.slice(0);
byAge.sort(function(a,b) {
return a.age_in_years - b.age_in_years ;
});
{
"lion":{
"age_in_years":"10",
"name":"king",
"country":"africa"
},
"elephant":{
"age_in_years":"15",
"name":"hero",
"country":"usa"
},
"racoon":{
"age_in_years":"5",
"name":"thanos",
"country":"syria"
},
}
这是我在 react-native 中通过网络套接字获取的数据。我想根据“age_in_years”按升序对其进行排序。所以最老的动物数据应该显示在顶部,最小的数据显示在最后。
将值存储在数组中并进行排序。
const numbers = [info.lion.age_in_years, info.elephant.age_in_years, info.racoon.age_in_years];
const ascNumbers = numbers.sort((a,b) => a-b);
如果需要降序,可以这样:
const descNumbers = numbers.sort((a,b) => b-a);
你最好使用如下所示的对象数组,首先将其映射到数组并解析 age_in_years
并对其进行排序。
const obj2Array = Object.entries(<YourObject>).map(([key, value]) => ({...value, _id: key, age_in_years: parseInt(value.age_in_years)}));
const sorted = obj2Array.sort((a, b) => a.age_in_years - b.age_in_years);
然后你可以使用.reduce
如果你想要返回对象,但是你可以使用排序数组来渲染它。
按年龄从大到大排序
// use slice() to copy the array
var byAge = array.slice(0);
byAge.sort(function(a,b) {
return a.age_in_years - b.age_in_years ;
});