我试图排序" 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);
然后我尝试排序" num"在两个" name"中的每一个中从最高到最低。对象
var theSortedChildren0 = _.sortBy(newdata.children[0].children, 'num');
var theSortedChildren1 = _.sortBy(newdata.children[1].children, 'num');
当我得到这些对象时,它们仍处于原始顺序(并且不按num排序)
console.log(theSortedChildren0);
console.log(theSortedChildren1);
答案 0 :(得分:0)
如果它解决了你的问题,请看这个:
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);