【问题标题】:How to split string when the value changes in JavascriptJavascript中值更改时如何拆分字符串
【发布时间】:2020-07-25 14:22:12
【问题描述】:

我有这个字符串(我不能修改它)

"AAACCDEEB"

并且我想在值发生变化时将其拆分为一个数组。所以在这个例子中我会有 5 个这样的数组

[['A','A','A'], ['C','C'], ['D'],['E','E'], ['B']]

【问题讨论】:

  • 到目前为止你尝试过什么? 'AACCAA'呢,会变成[['A','A'],['C','C'],['A','A']]
  • 请在How do I ask and answer homework questions?中展示您最近尝试自己解决此问题的尝试
  • @evolutionxbox 是的
  • 这个字符串存储在哪里(var)?为什么不能修改if?你怎么知道它已经改变了?为什么要将其拆分为一个数组+为什么仅在(之后)它更改时?你用数组做什么?你试过什么?您是否设法按照自己的意愿拆分任何数组?

标签: javascript arrays string split


【解决方案1】:

你应该试试

"AAACCDEEB".match(/(.)\1*/g) 

它应该给你 ["AAA", "CC", "D", "EE", "B"]

它适用于正则表达式,这个:

/(.)\1*/g)

并匹配任何单个字符,该字符后跟 0 次或多次相同的字符。

您还可以查看一些关于正则表达式的文档,它在这种情况下非常有效!

如果我的回答对你有帮助,请不要犹豫,接受它作为答案:)

【讨论】:

    【解决方案2】:

    所以可能是这样的:

     var string = "AAACCDEEB";
     var strArray = [[], [], [], [], []];
    for(var x = 0; x <= (strArray.length-1); x++){
    var val1 = 'A';
    var val2 = 'C';
    var val3 = 'D';
    var val4 = 'E'
    var val5 = 'B';
    for(var n = 0; string[x] == val1; n++){
    strArray[0][n] = string[x];
    }
    for(var m = 0; string[x] == val2; m++){
    strArray[1][m] = string[x];
    }
    for(var o = 0; string[x] == val3; o++){
    strArray[2][o] = string[x];
    }
    for(var z = 0; string[x] == val4; z++){
    strArray[3][z] = string[x];
    }
    for(var i = 0; string[x] == val5; i++){
    strArray[4][i] = string[x];
    }
    
    }
    document.write(strArray);
    

    如果有帮助,请采纳!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-25
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 2014-06-08
      • 2012-05-14
      相关资源
      最近更新 更多