如何将数组分成n组? (因式分解,或 _.partition 数组)
how to split array into n groups? (factorize, or _.partition array)
假设我有一个数组 = [0,1,2,3,4,5,6] 并且我想 "partition" 根据除以 3 后的提醒将其分成 3 个数组。
所以基本上我想要这样的东西:
_.my_partition([0,1,2,3,4,5,6], function(item) {return item % 3;})
// [[0,3,6], [1,4],[2,5]]
(我可以使用 lodash、下划线,如果有帮助...)
有多个可以做到这一点:
我。正常功能
function partition(items, n) {
var result = _.groupBy(items, function(item, i) {
return Math.floor(i % n);
});
return _.values(result);
}
myArray = [1,2,3,4,5,6,7,8,9,10];
partition(myArray, 3);
二.添加原型方法
Array.prototype.partition = function(n) {
var result = _.groupBy(this, function(item, i) {
return Math.floor(i % n);
});
return _.values(result);
}
myArray = [1,2,3,4,5,6,7,8,9,10];
myArray.partition(3)
创建一个_.partitionToGroups方法
_.partitionToGroups = function(items, n) {
var result = _.groupBy(items, function(item, i) {
return Math.floor(i % n);
});
return _.values(result);
}
myArray = [1,2,3,4,5,6,7,8,9,10];
_.partitionToGroups(myArray, 3);
假设我有一个数组 = [0,1,2,3,4,5,6] 并且我想 "partition" 根据除以 3 后的提醒将其分成 3 个数组。
所以基本上我想要这样的东西:
_.my_partition([0,1,2,3,4,5,6], function(item) {return item % 3;})
// [[0,3,6], [1,4],[2,5]]
(我可以使用 lodash、下划线,如果有帮助...)
有多个可以做到这一点:
我。正常功能
function partition(items, n) {
var result = _.groupBy(items, function(item, i) {
return Math.floor(i % n);
});
return _.values(result);
}
myArray = [1,2,3,4,5,6,7,8,9,10];
partition(myArray, 3);
二.添加原型方法
Array.prototype.partition = function(n) {
var result = _.groupBy(this, function(item, i) {
return Math.floor(i % n);
});
return _.values(result);
}
myArray = [1,2,3,4,5,6,7,8,9,10];
myArray.partition(3)
创建一个_.partitionToGroups方法
_.partitionToGroups = function(items, n) {
var result = _.groupBy(items, function(item, i) {
return Math.floor(i % n);
});
return _.values(result);
}
myArray = [1,2,3,4,5,6,7,8,9,10];
_.partitionToGroups(myArray, 3);