【问题标题】:How do I turn this string into an array of numbers?如何将此字符串转换为数字数组?
【发布时间】:2021-11-26 05:28:12
【问题描述】:

我正在编写这段代码,其中用户在输入框中输入了一个数组,因此该框几乎包含一个看起来有点像这样的字符串:[2, 2, 2, 2, 2, 9, 9, 9, 2, 2, 2], [2, 1, 1, 1, 1, 9, 9, 9, 1, 1, 2], [2, 1, 1,14, 1, 9, 9, 9, 1, 1, 2] 等等。

我想把它转换成一个数字数组,这样我的代码就可以用它做点什么,但我不知道怎么做。

只需获取输入框的值,就会输出如下内容:'[2, 2, 2, 2, 2, 9, 9, 9, 2, 2, 2], \n[2, 1, 1, 1, 1, 9, 9, 9, 1, 1, 2], \n[2, 1, 1,14, 1, 9, 9, 9, 1, 1, 2]',当我尝试拆分它/正则表达式替换某些内容时,要么我什么都得不到,要么我得到如下所示的数组:["2, 2, 2, 2, 2, 9, 9, 9, 2, 2, 2"]。我不太确定如何解决这个问题,我使用的代码需要它作为数字。

我不知道该怎么做,所以任何想法都会有所帮助。谢谢!

【问题讨论】:

  • 如果所有数组都采用给定格式,我建议将其转换为 char 数组(如` str.split() ` ),然后循环遍历此 char 数组。每当遇到左括号时生成数组,然后继续将元素推送到新生成的数组。

标签: javascript arrays string


【解决方案1】:

你可以使用JSON.parse:

const str = '[2, 2, 2, 2, 2, 9, 9, 9, 2, 2, 2],     \n[2, 1, 1, 1, 1, 9, 9, 9, 1, 1, 2],     \n[2, 1, 1,14, 1, 9, 9, 9, 1, 1, 2]';

const arrs = JSON.parse('[' + str + ']')

console.log(arrs)

【讨论】:

  • 没想到用这样的解析,很好。
猜你喜欢
  • 1970-01-01
  • 2012-05-18
  • 2023-02-23
  • 2021-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多