将数组分解为四人一组
Unflatten Arrays into groups of fours
我有一个数组,如下所示:
var someArray = ['val1','val2','val3','val4','val5','val6','val7','val8','val9','val10','val11','val12'];
我正试图找到一种优雅的方法,使用underscore
,简单地将其转换为一个数组,比如…
[['val1','val2','val3','val4'], ['val5','val6','val7','val8'], ['val9','val10','val11','val12']]
其中,新数组的每个索引是来自第一个数组的四个元素的组。有没有一种简单优雅的方法可以用underscore.js
做到这一点。
Undercore,因为您问了:(示例)
var i = 4, list = _.groupBy(someArray, function(a, b){
return Math.floor(b/i);
});
newArray = _.toArray(list);
香草JS:(示例)
var newArray = [], size = 4;
while (someArray.length > 0) newArray.push(someArray.splice(0, size));
纯JavaScript解决方案,使用splice()
:
Object.defineProperty( Array.prototype, 'eachConsecutive', {
value:function(n){
var copy = this.concat(), result = [];
while (copy.length) result.push( copy.splice(0,n) );
return result;
}
});
var someArray = ['val1','val2','val3','val4','val5','val6','val7','val8','val9','val10','val11','val12'];
var chunked = someArray.eachConsecutive(4);
//-> [["val1","val2","val3","val4"],["val5","val6","val7","val8"],["val9","val10","val11","val12"]]
相关文章:
- fluxxor向一个flux实例添加一组以上的操作
- 我们怎样才能将内含子J用于一组特定的元素
- 使用linq.js按当前日期订购一组momentjs日期
- 正则表达式,从一组关键字中获取奇数
- 创建一组元素JointJS
- 如何在javascript中获取一组复选框值
- 一组(共组..)
- 使用JS将页面中的每个字母设置为随机颜色.为什么在页面的每个打开标记之前总是有一组额外的span标记
- 在一组复选框中,一次只允许选择一个
- 为什么在fabricjs中可选择的不适用于一组圆
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 从一组具有相同起始和结束的所有段落的段落中提取包含特定字符串的段落
- 简单的Javascript文本编辑器或一组函数
- 基于日期范围的一组日期范围内的天数
- 处理对象数组并将它们以 4 个为一组进行分配
- 如何在 Javascript 中用一组字符拆分子字符串上的字符串
- 使一组对象与 jQuery 一起拖动
- 使用第 n 个类型设置一组八个元素的样式
- 将数组分解为四人一组
- 如何在jquery或javascript中将[“一”、“二”、“三”、“四”]转换为[一、二、三、四]作为数组