Javascript 摘录;";数组中的值
目标 “矮胖猴子”问题:从给定数组('arr')和数字('size')创建一个新的多维数组。新的多维数组应创建与“size”变量相等的数组长度 示例#1Javascript 摘录;";数组中的值,javascript,Javascript,目标 “矮胖猴子”问题:从给定数组('arr')和数字('size')创建一个新的多维数组。新的多维数组应创建与“size”变量相等的数组长度 示例#1 chunk(['a', 'b', 'c', 'd'], 2); var answer = []; function chunk(arr,size){ //do something }; return answer answer = [['a','b'],['c','d']]; 预期答案#1 chunk(['a', 'b', 'c', 'd
chunk(['a', 'b', 'c', 'd'], 2);
var answer = [];
function chunk(arr,size){
//do something
};
return answer
answer = [['a','b'],['c','d']];
预期答案#1
chunk(['a', 'b', 'c', 'd'], 2);
var answer = [];
function chunk(arr,size){
//do something
};
return answer
answer = [['a','b'],['c','d']];
示例#2
answer = [['a','b','c'],['d']];
下面是一个当元素/大小为奇数时的示例-在这种情况下,预期结果是有一个“余数”组
预期答案#2
answer = [['a','b','c'],['d']];
我的伪代码/方法
var final = [];
function chunk(arr, size) {
//extract number of elements from 'arr' = 'size'
var extract = function{
//HELP! [INSERT LOGIC]
};
//add extracted elements to 'group' array
var group = [extract];
//push 'group' to 'final' array for multidimensional array
final.push(group);
//return final'
return final;
}
chunk(['a', 'b', 'c', 'd'], 2);
问题
您可以使用递归函数:
功能块(arr,大小){
如果(!arr.length)返回[];
返回[arr.slice(0,size)].concat(chunk(arr.slice(size),size));
}
或循环:
功能块(arr,大小){
arr=arr.slice();
var-ret=[];
而(arr.length)ret.push(arr.拼接(0,尺寸));
返回ret;
}
您可以使用slice
获取块
var chunk = function (arr, size) {
var res = [];
for (var i = 0; i < arr.length; i += size) {
res.push(arr.slice(i, i + size));
}
return res;
};
var chunk=函数(arr,大小){
var-res=[];
对于(变量i=0;i
请参见这是我的解决方案。如果输入数组不是
大小的倍数
,则结果中的最后一组将包含剩余项
function chunk(arr, size) {
var arr_size = arr.length,
no_groups = arr_size/size,
i,
final = [];
if (no_groups == 0){
return arr;
}
for(i=0;i<no_groups;i++){
final.push(arr.splice(0, size ));
}
return final;
}
功能块(arr,大小){
变量arr_size=arr.length,
无组=阵列尺寸/尺寸,
我
最终=[];
如果(无组==0){
返回arr;
}
对于(i=0;isomething,如while(x=arr.splice(-2,2).length)array2.push(x);
您希望将元素分组为两组的平均时间?它始终是大小的数组倍数的len
?@dandavis我的分析正确吗:您使用的是splice()是否在索引中循环,然后删除最近记录的值?@Vasilenicus抱歉-我不太理解你的问题。关于目标,我尝试将原始数组拆分为与“大小”参数相等的组(例如size=3,因此我应该将原始数组拆分为新数组,每个数组中有3个元素)使用array.Splice
…给我几分钟的时间制作一个插入器。谢谢你的回答。