【发布时间】:2020-06-04 06:26:58
【问题描述】:
伙计们。我对javascript很陌生,我正在尝试对一个巨大的嵌套数组进行排序。
这是数组的一部分:
{
UF: 'AC',
Cidades: [
{ ID: '79', Nome: 'Acrelândia', Estado: '1' },
{ ID: '80', Nome: 'Assis Brasil', Estado: '1' },
{ ID: '81', Nome: 'Brasiléia', Estado: '1' },
{ ID: '82', Nome: 'Bujari', Estado: '1' },
{ ID: '83', Nome: 'Capixaba', Estado: '1' }
]}
{
UF: 'AL',
Cidades: [
{ ID: '101', Nome: 'Água Branca', Estado: '2' },
{ ID: '102', Nome: 'Anadia', Estado: '2' },
{ ID: '103', Nome: 'Arapiraca', Estado: '2' },
{ ID: '104', Nome: 'Atalaia', Estado: '2' },
{ ID: '105', Nome: 'Barra de Santo Antônio', Estado: '2' },
{ ID: '106', Nome: 'Barra de São Miguel', Estado: '2' },
{ ID: '107', Nome: 'Batalha', Estado: '2' }
]}
}
这些数组是一堆对象(每个州一个),每个州对象内都有一个包含所有城市的嵌套数组。我要做的是根据每个“Nome”的长度对嵌套数组“Cidades”进行排序。
我尝试了很多事情都没有成功。我尝试的最后一件事是:
arr.forEach((state) => {
arr.sort((a, b) => {
return b.Cidades[1] - a.Cidades[1];
});
});
我也尝试编写自己的比较函数,但没有成功
function compare(a, b) {
if (a.Cidades.Nome < b.Cidades.Nome) {
return -1;
}
if (a.Cidades.Nome > b.Cidades.Nome) {
return 1;
}
return 0;
}
你们能告诉我我该怎么做以及为什么我做错了吗?
提前通知!
【问题讨论】:
标签: javascript arrays string sorting nested