Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中按值(例如来自Firestore)对多数组/嵌套映射进行排序_Javascript_Arrays_Sorting - Fatal编程技术网

如何在JavaScript中按值(例如来自Firestore)对多数组/嵌套映射进行排序

如何在JavaScript中按值(例如来自Firestore)对多数组/嵌套映射进行排序,javascript,arrays,sorting,Javascript,Arrays,Sorting,我试图通过JavaScript/TypeScript获得一个按值排序的多数组/嵌套映射 我的阵列当前看起来如下所示: let array = [ { classification: { company_id: 1 }, information: { name: 'C' } }, { classification: {

我试图通过JavaScript/TypeScript获得一个按值排序的多数组/嵌套映射

我的阵列当前看起来如下所示:

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,这正是我喜欢使用排序函数的方式,因为我认为它使编写更容易:)