javascript对对象数组中的元素进行排序

javascript对对象数组中的元素进行排序,javascript,arrays,json,Javascript,Arrays,Json,我有以下数组: [{"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_niv

我有以下数组:

    [{"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_modelo”升序并按“cod_nivel”分组来排列这个对象数组。因此,结果应该是:

    [{"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]);
    }
var数组=[{“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 i=0;i方法将为您完成这项工作

此代码首先按
cod\u nivel
,然后按
cod\u 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(函数(a,b){
返回a.cod\u nivel>b.cod\u nivel?1:
a、 化学需氧量b.cod_modelo?1:
a、 cod_modelo')方法将为您完成这项工作

此代码首先按
cod\u nivel
,然后按
cod\u 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(函数(a,b){
返回a.cod\u nivel>b.cod\u nivel?1:
a、 化学需氧量b.cod_modelo?1:
a、 cod_modelo')


如果没有使用外部javascript库的限制,您可以使用下划线js,此库专门用于处理javascript对象和集合。您可以采用以下示例作为解决方案

var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];

var sort = _.sortBy(stooges, 'name');

希望它有帮助……

如果没有使用外部javascript库的限制,您可以使用下划线js,此库是专门为处理javascript对象和集合而设计的。您可以采用以下示例作为解决方案

var stooges = [{name: 'moe', age: 40}, {name: 'larry', age: 50}, {name: 'curly', age: 60}];

var sort = _.sortBy(stooges, 'name');

希望对您有所帮助。

我想您需要先检查
cod\u nivel
firstyes,但按cod\u modelo订购后,它不会按cod\u nivel分组。它需要按cod_nivel进行分组(它们需要是一个接一个的相同cod_nivel的对象)对不起,我把这个问题解释为需要先按
cod_modelo
进行排序。我会更新。我想您需要先检查
cod\n水平
firstyes,但按cod\u modelo订购后,它不会按cod\n水平分组。它需要按cod_nivel进行分组(它们需要是一个接一个的相同cod_nivel的对象)对不起,我把这个问题解释为需要先按
cod_modelo
进行排序。我会更新的。