尝试在多维数组中使用 .sortBy

Trying to use .sortBy in a multidimensional array

我正在尝试对我首先嵌套的数组中的 "num" 个子项进行排序:

_ = require('underscore');

_.nst = require('underscore.nest');

var data = [
    {'name' : 'name 1', 'num' : 40},
    {'name' : 'name 1', 'num' : 20},
    {'name' : 'name 2', 'num' : 10},
    {'name' : 'name 2', 'num' : 50},
    {'name' : 'name 2', 'num' : 40},
    {'name' : 'name 2', 'num' : 70},
    {'name' : 'name 2', 'num' : 30}
];


 //first I nest the data by the "name"
 var newdata = _.nst.nest(data, 'name');

 console.log(newdata);

但随后我尝试在两个 "name" 对象中按从高到低的顺序对 "num" 进行排序

var theSortedChildren0 =  _.sortBy(newdata.children[0].children, 'num');
var theSortedChildren1 =  _.sortBy(newdata.children[1].children, 'num');

当我得到这些时,对象仍然是它们的原始顺序(而不是按数字排序)

    console.log(theSortedChildren0);
    console.log(theSortedChildren1);

如果解决了您的问题,请看一下:

var data = [
    {'name' : 'name 1', 'num' : 40},
    {'name' : 'name 1', 'num' : 20},
    {'name' : 'name 2', 'num' : 10},
    {'name' : 'name 2', 'num' : 50},
    {'name' : 'name 2', 'num' : 40},
    {'name' : 'name 2', 'num' : 70},
    {'name' : 'name 2', 'num' : 30}
];

var obj = _.chain(data)
           .groupBy('name')
           .map(function ( value) {
              return _.sortBy(value, 'num');
           }).value();

console.log(obj);