在JavaScript中,如何将字符串中的字母切碎成固定长度的小块?
提前感谢您抽出时间阅读。我是一个完全的初学者,我知道这听起来可能是一个“帮助我理解这个”的问题,但如果是这样的话,我很抱歉,我会尽量具体一些 基本上,我需要创建一个函数来将字符串切碎为输入长度较小的字符串,我尝试过数组方法,但由于某些原因,我一直得到一个空数组。因此,如果输入字符串为“hell”,输入长度为2,则输出为[“he”,“ll]在JavaScript中,如何将字符串中的字母切碎成固定长度的小块?,javascript,Javascript,提前感谢您抽出时间阅读。我是一个完全的初学者,我知道这听起来可能是一个“帮助我理解这个”的问题,但如果是这样的话,我很抱歉,我会尽量具体一些 基本上,我需要创建一个函数来将字符串切碎为输入长度较小的字符串,我尝试过数组方法,但由于某些原因,我一直得到一个空数组。因此,如果输入字符串为“hell”,输入长度为2,则输出为[“he”,“ll] 另外,关于这个问题,我想知道您是否可以设置一个for循环条件x.length您可以这样做: function chop(a, b) { var ans
另外,关于这个问题,我想知道您是否可以设置一个for循环条件x.length您可以这样做:
function chop(a, b) {
var ans = [];
for (var i = 0; i < a.length; i += b) {
ans.push(a.substring(i, i + b));
}
console.log(ans);
}
chop("hello", 2); //logs ["he", "ll", "o"]
功能印章(a、b){
var ans=[];
对于(变量i=0;i
您可以这样做:
function chop(a, b) {
var ans = [];
for (var i = 0; i < a.length; i += b) {
ans.push(a.substring(i, i + b));
}
console.log(ans);
}
chop("hello", 2); //logs ["he", "ll", "o"]
功能印章(a、b){
var ans=[];
对于(变量i=0;i
使用正则表达式很简单:
"hello".match(/.{1,2}/g) || []; // ["he", "ll", "o"]
但是,如果您事先不知道第二个参数的值,它会有点脏:
function chop(a, b) {
return a.match(new RegExp('.{1,'+b+'}','g')) || [];
}
chop("hello", 2); // ["he", "ll", "o"]
在这种情况下,最好在将
b
插入正则表达式之前对其进行清理。使用正则表达式很简单:
"hello".match(/.{1,2}/g) || []; // ["he", "ll", "o"]
但是,如果您事先不知道第二个参数的值,它会有点脏:
function chop(a, b) {
return a.match(new RegExp('.{1,'+b+'}','g')) || [];
}
chop("hello", 2); // ["he", "ll", "o"]
在这种情况下,在将
b
插入正则表达式之前对其进行消毒是个好主意。请努力将您的代码格式化好。谢谢。是的,我想这就是为什么我的问题一直被否决的原因。请让我知道如何才能做得更好?我想您已经读到,我是一个初学者,而且我也是stackover新手flow,所以我会很感激任何建议。请花点精力把代码格式化好。谢谢。是的,我想这就是为什么我的问题一直被否决的原因。请让我知道我如何才能做得更好?我想你已经读到我是初学者,我也是stackoverflow的新手,所以我会很感激任何建议我只是不明白为什么不能这里的i+=b不是for循环中的i++?第一次迭代它是i=0
a.substring(0,2)
,第二次=>i现在是0+2(b)=2
和a.substring(2,4)
,第三次=>i现在是2+2(b)=4
,a.substring(4,6)
,第四次=i现在是4+2(b)
,a
。如此一来,你的解释使它变得容易多了。非常感谢你的解释。我只是不明白为什么for循环中有i+=b而不是i++?首先迭代它是i=0
a.substring(0,2)
,第二=>我现在是0+2(b)=2
和a.substring(2,4)
,第三=>我现在是2+2(b)我现在是4+2(b)
,a.substring(6,6)
,forth=>i现在是4+2(b)
,a.substring(6,8)
。诸如此类,你的解释让事情变得容易多了。非常感谢你的解释