gpt4 book ai didi

对象数组中的javascript排序元素

转载 作者:行者123 更新时间:2023-11-30 07:37:08 26 4
gpt4 key购买 nike

我有以下数组:

    [{"cod_nivel":"INC2","cod_modelo":"D"},
{"cod_nivel":"INC2","cod_modelo":"B"},
{"cod_nivel":"PRIM","cod_modelo":"B"},
{"cod_nivel":"PRIM","cod_modelo":"D"},
{"cod_nivel":"PRIM2","cod_modelo":"B"},
{"cod_nivel":"PRIM2","cod_modelo":"D"},
{"cod_nivel":"PRIM2","cod_modelo":"A"}]

我需要按按“cod_nivel”分组的“cod_modelo”升序排列这个对象数组。所以结果应该是:

    [{"cod_nivel":"INC2","cod_modelo":"B"},
{"cod_nivel":"INC2","cod_modelo":"D"},
{"cod_nivel":"PRIM","cod_modelo":"B"},
{"cod_nivel":"PRIM","cod_modelo":"D"},
{"cod_nivel":"PRIM2","cod_modelo":"A"},
{"cod_nivel":"PRIM2","cod_modelo":"B"},
{"cod_nivel":"PRIM2","cod_modelo":"D"}]

我的尝试:

var array = [{"cod_nivel":"INC2","cod_modelo":"D"},
{"cod_nivel":"INC2","cod_modelo":"B"},
{"cod_nivel":"PRIM","cod_modelo":"B"},
{"cod_nivel":"PRIM","cod_modelo":"D"},
{"cod_nivel":"PRIM2","cod_modelo":"B"},
{"cod_nivel":"PRIM2","cod_modelo":"D"},
{"cod_nivel":"PRIM2","cod_modelo":"A"}];
var groups = {}; // I know i need some temp object to store the current level that is being ordered..
for (var i = 0; i < array.length; i++) {
groups.push(array[i]);
}

最佳答案

sort 方法将为您完成这项工作。

此代码对数组进行排序,首先按 cod_nivel,然后按 cod_modelo

条件运算符:

condition ? expr1 : expr2 

… 用于按键比较数组的元素。 (条件运算符通常称为“三元运算符”,因为它是唯一接受三个操作数的 JavaScript 运算符。)

var arr= [{"cod_nivel":"INC2","cod_modelo":"D"},
{"cod_nivel":"INC2","cod_modelo":"B"},
{"cod_nivel":"PRIM","cod_modelo":"B"},
{"cod_nivel":"PRIM","cod_modelo":"D"},
{"cod_nivel":"PRIM2","cod_modelo":"B"},
{"cod_nivel":"PRIM2","cod_modelo":"D"},
{"cod_nivel":"PRIM2","cod_modelo":"A"}
];

var sorted= arr.sort(function(a, b) {
return a.cod_nivel > b.cod_nivel ? 1 :
a.cod_nivel < b.cod_nivel ? -1 :
a.cod_modelo > b.cod_modelo ? 1 :
a.cod_modelo < b.cod_modelo ? -1 :
0;
});

document.body.innerHTML= JSON.stringify(sorted).replace(/},/g,'},<br>');

关于对象数组中的javascript排序元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29558848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com