如何在JavaScript中按值(例如来自Firestore)对多数组/嵌套映射进行排序
我试图通过JavaScript/TypeScript获得一个按值排序的多数组/嵌套映射 我的阵列当前看起来如下所示:如何在JavaScript中按值(例如来自Firestore)对多数组/嵌套映射进行排序,javascript,arrays,sorting,Javascript,Arrays,Sorting,我试图通过JavaScript/TypeScript获得一个按值排序的多数组/嵌套映射 我的阵列当前看起来如下所示: let array = [ { classification: { company_id: 1 }, information: { name: 'C' } }, { classification: {
let array =
[
{
classification: {
company_id: 1
},
information: {
name: 'C'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'B'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'A'
}
}
];
let array_sorted =
[
{
classification: {
company_id: 1
},
information: {
name: 'A'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'B'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'C'
}
}
];
const array_sorted = array.sort(
(a, b) => {
if (a > b.information.name) return -1;
if (a < b.information.name) return 1;
return 0;
}, 0
)
现在我想按['information']['name']
值进行排序,如下所示:
let array =
[
{
classification: {
company_id: 1
},
information: {
name: 'C'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'B'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'A'
}
}
];
let array_sorted =
[
{
classification: {
company_id: 1
},
information: {
name: 'A'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'B'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'C'
}
}
];
const array_sorted = array.sort(
(a, b) => {
if (a > b.information.name) return -1;
if (a < b.information.name) return 1;
return 0;
}, 0
)
有人知道怎么做吗?
我对嵌套的东西特别纠结
提前谢谢你 使用
String.prototype.localeCompare
,可以比较字符串值,并基于该结果,使用Array.prototype.sort
函数,可以按如下方式对数组进行排序
let数组=[{
分类:{
公司编号:1
},
资料:{
姓名:“C”
}
},
{
分类:{
公司编号:1
},
资料:{
姓名:'B'
}
},
{
分类:{
公司编号:1
},
资料:{
姓名:“A”
}
}
];
const result=array.sort((a,b)=>a.information.name.localeCompare(b.information.name));
控制台日志(结果)代码>使用String.prototype.localeCompare
,您可以比较字符串值,并基于该结果,使用Array.prototype.sort
函数,可以按如下方式对数组进行排序
let数组=[{
分类:{
公司编号:1
},
资料:{
姓名:“C”
}
},
{
分类:{
公司编号:1
},
资料:{
姓名:'B'
}
},
{
分类:{
公司编号:1
},
资料:{
姓名:“A”
}
}
];
const result=array.sort((a,b)=>a.information.name.localeCompare(b.information.name));
控制台日志(结果)代码>您可以使用排序功能。它看起来是这样的:
let array =
[
{
classification: {
company_id: 1
},
information: {
name: 'C'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'B'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'A'
}
}
];
let array_sorted =
[
{
classification: {
company_id: 1
},
information: {
name: 'A'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'B'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'C'
}
}
];
const array_sorted = array.sort(
(a, b) => {
if (a > b.information.name) return -1;
if (a < b.information.name) return 1;
return 0;
}, 0
)
const array\u sorted=array.sort(
(a,b)=>{
如果(a>b.information.name)返回-1;
如果(a
可以通过交换1和-1来反转顺序。sort函数接受返回-1、1或0(表示顺序)的函数的第一个参数,以及设置变量“a”(可选)初始值的第二个参数。我已经将初始值设置为0,这正是我喜欢使用排序函数的方式,因为我认为这样更容易编写:)您可以使用排序函数。它看起来是这样的:
let array =
[
{
classification: {
company_id: 1
},
information: {
name: 'C'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'B'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'A'
}
}
];
let array_sorted =
[
{
classification: {
company_id: 1
},
information: {
name: 'A'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'B'
}
},
{
classification: {
company_id: 1
},
information: {
name: 'C'
}
}
];
const array_sorted = array.sort(
(a, b) => {
if (a > b.information.name) return -1;
if (a < b.information.name) return 1;
return 0;
}, 0
)
const array\u sorted=array.sort(
(a,b)=>{
如果(a>b.information.name)返回-1;
如果(a
可以通过交换1和-1来反转顺序。sort函数接受返回-1、1或0(表示顺序)的函数的第一个参数,以及设置变量“a”(可选)初始值的第二个参数。我已将初始值设置为0,这正是我喜欢使用排序函数的方式,因为我认为它使编写更容易:)