首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种从字符串创建数组的简单方法,该字符串的元素可能比其他元素更长。

是否有一种从字符串创建数组的简单方法,该字符串的元素可能比其他元素更长。
EN

Stack Overflow用户
提问于 2021-04-21 14:10:51
回答 2查看 65关注 0票数 1

能不能说拿着

"15+2+16\*9-2"

并将其转换为一个类似于

[15,"+",2,"+",16,"*",9,"-",2]

我认为这将是类似的.toCharArray(),但我不确定它会是什么。

我试图实现的目标是有一个数组,包含所有的数字和运算符,并使用它来计算一些东西,但我目前也在头脑风暴周围的其他方式,我只是在寻找一些简单的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-21 14:33:45

简单地说:

代码语言:javascript
运行
复制
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]

票数 1
EN

Stack Overflow用户

发布于 2021-04-21 14:23:36

代码语言:javascript
运行
复制
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"]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67197582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档