Javascript 将字符串拆分为具有备用字符串的数组(&A);两位数
是否可以拆分一个字符串(可能使用正则表达式),使每个其他数字都是一对(从右端开始) 我尝试反转字符串&然后添加两个和一个字符的交替块,直到字符串的末尾(前面)。然后再倒过来。这主要是有效的,但它有缺陷(并非适用于所有情况)。我也试过正则表达式Javascript 将字符串拆分为具有备用字符串的数组(&A);两位数,javascript,arrays,string,split,Javascript,Arrays,String,Split,是否可以拆分一个字符串(可能使用正则表达式),使每个其他数字都是一对(从右端开始) 我尝试反转字符串&然后添加两个和一个字符的交替块,直到字符串的末尾(前面)。然后再倒过来。这主要是有效的,但它有缺陷(并非适用于所有情况)。我也试过正则表达式 (\d\d)(\d)(\d\d)(\d)(\d\d)(\d) 但这也不起作用(讽刺的是,只有在regex测试仪中才起作用)-它太长了,但我需要它来处理最多10位数字。不难: 从右边开始,我将取一次2位数,第二次1位数。 使用切片。然后我将使用unshif
(\d\d)(\d)(\d\d)(\d)(\d\d)(\d)
但这也不起作用(讽刺的是,只有在regex测试仪中才起作用)-它太长了,但我需要它来处理最多10位数字。不难:
从右边开始,我将取一次2位数,第二次1位数。
使用切片
。然后我将使用unshift
将其推送到数组的开头
我使用了一个标志,来知道何时只取一个参数,何时取两个参数(配对标志)
结果:
["1"]
["12"]
["1", "23"]
["1", "2", "34"]
["12", "3", "45"]
["1", "23", "4", "56"]
["12", "3", "45", "6", "78"]
["1", "23", "4", "56", "7", "89"]
["1", "2", "34", "5", "67", "8", "90"]
我最终到达了那里
// 1 [1]
// 12 [12]
// 123 [1,23]
// 1234 [1,2,34]
// 12345 [12,3,45]
// 123456 [1,23,4,56]
// 1234567 [1,2,34,5,67]
// 12345678 [12,3,45,6,78]
// 123456789 [1,23,4,56,7,89]
// 1234567890 [1,2,34,5,67,8,90]
var results = "";
pairUp(1)
pairUp(12)
pairUp(123)
pairUp(1234)
pairUp(12345)
pairUp(123456)
pairUp(12345678)
pairUp(123456789)
pairUp(1234567890)
alert(results);
function pairUp(num)
{
var s = num.toString();
s = s.split("").reverse().join("");
var a = s.split("");
var r = []; // our results array
count = 0;
for (var i = 0; i <= a.length -1; i++)
{
temp = a[count];
if ((i % 2) == 0) // even (0, 2, 4)
{
var p = a[count+1];
var q = a[count];
if (p == undefined) p = "";
if (q) r.push(p + q+ "");
count+=2;
}
else
{
if (temp != undefined) r.push(temp + "");
count+=1;
}
} // end loop
r = r.reverse();
results+= r + "\n";
} // end pair up
/1[1]
// 12 [12]
// 123 [1,23]
// 1234 [1,2,34]
// 12345 [12,3,45]
// 123456 [1,23,4,56]
// 1234567 [1,2,34,5,67]
// 12345678 [12,3,45,6,78]
// 123456789 [1,23,4,56,7,89]
// 1234567890 [1,2,34,5,67,8,90]
var结果=”;
佩鲁普(1)
佩鲁普(12)
佩鲁普(123)
pairUp(1234)
佩鲁普(12345)
pairUp(123456)
pairUp(12345678)
pairUp(123456789)
pairUp(1234567890)
警报(结果);
函数pairUp(num)
{
var s=num.toString();
s=s.split(“”).reverse().join(“”);
var a=s.split(“”);
var r=[];//我们的结果数组
计数=0;
对于(var i=0;i)什么是语言?是的。这是可能的。现在请阅读。在这种情况下://1234[1,2,34]
可能这//1234[12,34]
?我将数字分解为单词。一千、二百、三十四个。有趣的问题,#阿米娜你的解决方案更优雅、更快-但我决心做到这一点!
["1"]
["12"]
["1", "23"]
["1", "2", "34"]
["12", "3", "45"]
["1", "23", "4", "56"]
["12", "3", "45", "6", "78"]
["1", "23", "4", "56", "7", "89"]
["1", "2", "34", "5", "67", "8", "90"]
// 1 [1]
// 12 [12]
// 123 [1,23]
// 1234 [1,2,34]
// 12345 [12,3,45]
// 123456 [1,23,4,56]
// 1234567 [1,2,34,5,67]
// 12345678 [12,3,45,6,78]
// 123456789 [1,23,4,56,7,89]
// 1234567890 [1,2,34,5,67,8,90]
var results = "";
pairUp(1)
pairUp(12)
pairUp(123)
pairUp(1234)
pairUp(12345)
pairUp(123456)
pairUp(12345678)
pairUp(123456789)
pairUp(1234567890)
alert(results);
function pairUp(num)
{
var s = num.toString();
s = s.split("").reverse().join("");
var a = s.split("");
var r = []; // our results array
count = 0;
for (var i = 0; i <= a.length -1; i++)
{
temp = a[count];
if ((i % 2) == 0) // even (0, 2, 4)
{
var p = a[count+1];
var q = a[count];
if (p == undefined) p = "";
if (q) r.push(p + q+ "");
count+=2;
}
else
{
if (temp != undefined) r.push(temp + "");
count+=1;
}
} // end loop
r = r.reverse();
results+= r + "\n";
} // end pair up