能不能说拿着
"15+2+16\*9-2"
并将其转换为一个类似于
[15,"+",2,"+",16,"*",9,"-",2]
我认为这将是类似的.toCharArray(),但我不确定它会是什么。
我试图实现的目标是有一个数组,包含所有的数字和运算符,并使用它来计算一些东西,但我目前也在头脑风暴周围的其他方式,我只是在寻找一些简单的东西。
发布于 2021-04-21 14:33:45
简单地说:
const
s1 = "15+2+16*9-2"
, s2 = " 15 + 2 + 16 * 9 - 2 "
, calcN = str => str.split(/(\+|\-|\*|\/)/).map(x=>isNaN(x)?x:Number(x))
;
console.log(JSON.stringify(calcN(s1))) // [15,"+",2,"+",16,"*",9,"-",2]
console.log(JSON.stringify(calcN(s2))) // [15,"+",2,"+",16,"*",9,"-",2]
发布于 2021-04-21 14:23:36
splix = function ()
{
u = [].slice.call(arguments); v = u.slice(1); u = u[0]; w = [u]; x = 0;
for (i = 0; i < u.length; ++i)
{
for (j = 0; j < v.length; ++j)
{
if (u.slice(i, i + v[j].length) == v[j])
{
y = w[x].split(v[j]); w[x] = y[0]; w[++x] = y[1];
};
};
};
return w;
};
使用:splix(string, delimiters...)
示例:splix("1.23--4", ".", "--")
返回:["1", "23", "4"]
https://stackoverflow.com/questions/67197582
复制相似问题