Javascript 在按空格分割的较小数组中打断数组
我有一个字符串'1223334444456',我想做一个像这样的数组-[[1,22],[22333],[4444,5],[5,6] 我试着用。。。循环,但没有帮助Javascript 在按空格分割的较小数组中打断数组,javascript,arrays,for-loop,split,Javascript,Arrays,For Loop,Split,我有一个字符串'1223334444456',我想做一个像这样的数组-[[1,22],[22333],[4444,5],[5,6] 我试着用。。。循环,但没有帮助 let str = ' 1 22 333 4444 5 6 '; let arr = []; for(let i = 0; i < str.length; i++) arr.push(str.slice(str.indexOf(' ', i),str.indexOf(' ',i+1))); 而不是: [[1, 22],
let str = ' 1 22 333 4444 5 6 ';
let arr = [];
for(let i = 0; i < str.length; i++)
arr.push(str.slice(str.indexOf(' ', i),str.indexOf(' ',i+1)));
而不是:
[[1, 22], [22, 333], [4444, 5], [5, 6]];
为什么错了?有人知道怎么做吗?因为每个数字之间的分隔符在整个字符串中是一致的,所以不可能做您想做的事情。您需要为每个数字使用一个分隔符,然后为组使用不同的分隔符 比如, 设str='122334444,5 6'; 让组=str.split,; 设arr=[]; 对于let i=0;i<组长;我++ arr.pushgroups[i].拆分; console.logarr 也许是这样: 设str='1223334444456'; 设arr=[]; 设str_arr=str.split'; forlet键在str_arr中{ 如果有[钥匙]={ 让我们添加_arr=[]; 添加_arr.pushparseIntstr_arr[key],10; 让next_key=parseIntkey,10+1; ifstr_arr[下一个_键]{ 添加_arr.pushparseIntstr _arr[next_key],10; arr.pushadd_arr; } } }
console.logarr 您应该运行此代码
let str = ' 1 22 333 4444 5 6 ';
let arr = [];
var res = str.split(" ");
console.log(res);
var a = res.filter(i => i !== "");
console.log(a);
var tempArr = [];
var counter = 0;
for (var i = 0; i < a.length; i++){
counter++;
tempArr.push(a[i]);
if(counter == 2){
arr.push(tempArr);
tempArr = [];
counter = 0;
}
}
console.log(arr);
设str='1223334444456';
设arr=[];
让温度=str.trim.split;
对于let i=0;i<温度长度-1;我++
arr.push[parseInttemp[i],parseInttemp[i+1];
console.logarr;
对于let i=0;iconsole.logres 如果我对任务的理解正确,这是解决问题的一种方法:
' 1 22 333 4444 5 6 '
.trim()
.split(' ')
.reduce((arr, item, index) => {
if (index % 2 === 0) {
arr.push([ item ]);
} else {
arr.slice(-1)[0].push(item);
}
return arr;
}, [])
作为替代方案,您可以使用带有捕获组和正向前瞻的正则表达式来断言后面的一个或多个数字,并在第二个捕获组中捕获该数字 然后将数组中的组1和组2添加到arr 常量正则表达式=/\d+?=\d+/g; 让m; 设str='1223334444456'; 设arr=[]; 而m=regex.execstr!==空的{ arr.push[m[1],m[2]; }
console.logarr;由于原始字符串中只有一个5,您真的希望最后一个数组有[5,6]还是只有[6]?为什么不使用正则表达式[3334444]会是平滑的。结果数组不是整数values@NickA也许这是一个过于宽泛的说法,但我尽量不去假设最初的海报明确地想要两人一组,因为人们可以合理地假设两人一组是巧合。@AdamChubbuck我在评论中没有注意到什么,不要理我:@AdamChubbuck,尽管可以安全地假设2组不是巧合的,因为:str.slicestr.indexOf'',**i**,str.indexOf'',**i+1**@NickA也许OP可以澄清。上面代码的输出是。。。不,不是,你掉了[3334444]
' 1 22 333 4444 5 6 '
.trim()
.split(' ')
.reduce((arr, item, index) => {
if (index % 2 === 0) {
arr.push([ item ]);
} else {
arr.slice(-1)[0].push(item);
}
return arr;
}, [])