【问题标题】:String to array node js javascript字符串到数组节点js javascript
【发布时间】:2018-06-24 14:30:35
【问题描述】:

您好,我的当前字符串已显示:

082759
078982
074470
066839
062069
062068
062029
062027
059304
059299
056449
056421
052458
050666
100530
078977
072967
072958
072957
066982
062864
062064
056506
052456

总共 24 个 6 位数字,注意它们之间的新行。 我需要将整个字符串分解为一个数组,以便显示 [082759,078982,etc],以便在调用时:

console.log(array[0])

将输出:

082759

注意:'\n' 方法似乎不起作用,当重新调用它时 [当在数组中时],例如数组 [0],它会输出所有数字。

此数据的来源变量来自:

var currentSku = $(this).attr('data-productsku')

所以如果这个 j-query 有一个特定的字符串类型,那么它可能与此有关吗?

【问题讨论】:

  • 首先字符串应该在一个变量中!
  • 所有字符串都在一个变量中;我试图先将其放入一行,然后将其分解为一个数组。 The traditional arr = s.split("\n") console.log(arr[0]) 不起作用
  • 你能在 StackOverflow 中创建一个 sn-p,或者创建一个重现问题的 jsfiddle 吗?当我做split 时,它似乎工作正常......
  • 请显示minimal reproducible example。 {Whatever} 的解决方案应该可以正常工作,如果不行,则说明其他问题。

标签: javascript arrays string


【解决方案1】:

因为它们之间有'\n',所以使用split()

let arr = str.split('\n')
console.log(arr[0]);

【讨论】:

  • 记录整个事情;这是我遇到的问题,所以这个方法不起作用
  • @3.14159265432 这完全取决于您如何存储字符串。您说数字由换行符 (\n) 分隔,因此 split('\n') 必须正常工作。如果不是,那么您的代码与您所说的不同,并且您没有告诉我们到底有什么不同。
  • 这就是当我记录所有存储变量时的样子。这全部来自获取请求,所以我不完全确定。
  • @3.14159265432 你的编辑毫无意义,因为我不知道this 指的是什么以及data-productsku 的样子。
  • @3.14159265432 Jquery 没有特定的字符串类型,没有。您能否创建一个minimal reproducible example,以便我们重现您的问题?
【解决方案2】:

如果您每次都在换行中添加数字,则可以使用.split() 方法。

您必须传递要分割的分隔符;在您的情况下,您使用 \n ,因为这就是 Javascript 中换行符的转义方式。这将创建一个数据数组。

使用下面的代码,您可以这样做:


let string = `082759
078982
074470
066839
062069
062068
062029
062027
059304
059299
056449
056421
052458
050666
100530
078977
072967
072958
072957
066982
062864
062064
056506
052456`;

let arr = string.split('\n');

console.log(arr[0]);

【讨论】:

    【解决方案3】:

    试试这个代码

    var test = "082759 078982 074470 066839 062069 062068";
    
    var arr = test.split(" ");
    console.log(arr[0]);
    console.log(arr[4]);

    测试代码!

    注意:每个数字之间应该有一个空格。

    下一个解决方案在这里

    var test = 
    `082759
    078982
    074470
    066839
    062069
    06206`;
    
    var arr = test.split("\n");
    console.log(arr[0]);
    console.log(arr[4]);

    【讨论】:

    • 但在 OP 的示例中,它们由新行而不是空格分隔
    • @user184994 他/她没有提到 var 是如何设置的。如果它在单独的行中,我会更新
    • OP 的问题是:“注意它们之间的新线。”
    【解决方案4】:

    如果使用\n 拆分不起作用,则可能是您的字符串使用了不同样式的行尾。例如,您可以尝试\r\r\n

    【讨论】:

      【解决方案5】:
      array.split(/\n/)
      

      array.split(\n)
      

      【讨论】:

      • array.split('\n'),这是最常用的写法。
      猜你喜欢
      • 2019-02-18
      • 2018-05-01
      • 2012-05-08
      • 2011-10-04
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      相关资源
      最近更新 更多