使用Underscore.js,我试图多次对项目列表进行分组,即
然后由SIZE分组为每个SIZE,按类别分组......
http://jsfiddle.net/rickysullivan/WTtXP/1/
理想情况下,我希望有一个函数或扩展,_.groupBy()
以便您可以使用参数对其进行分组.
var multiGroup = ['size', 'category'];
Run Code Online (Sandbox Code Playgroud)
可能只是混合...
_.mixin({
groupByMulti: function(obj, val, arr) {
var result = {};
var iterator = typeof val == 'function' ? val : function(obj) {
return obj[val];
};
_.each(arr, function(arrvalue, arrIndex) {
_.each(obj, function(value, objIndex) {
var key = iterator(value, objIndex);
var arrresults = obj[objIndex][arrvalue];
if (_.has(value, arrvalue))
(result[arrIndex] || (result[arrIndex] = [])).push(value);
Run Code Online (Sandbox Code Playgroud)
我的头很痛,但我觉得还有更多需要去的地方......
});
})
return result;
}
});
properties = _.groupByMulti(properties, function(item) {
var testVal = item["size"];
if (parseFloat(testVal)) …
Run Code Online (Sandbox Code Playgroud)