【问题标题】:String.ToCharArray() equivalent on JavaScript?JavaScript 上的 String.ToCharArray() 等价物?
【发布时间】:2019-10-30 00:21:12
【问题描述】:

我正在尝试找到一种方法来为 JavaScript 上的每个字符拆分一个字符串,相当于 c# 中的String.ToCharArray()

以后用逗号加入他们。

例如:"012345" 拆分后 -> "['0','1','2','3','4','5']" 加入后 -> "0,1,2,3,4,5"

到目前为止,我遇到的是循环每个字符并手动添加逗号(我认为这很慢)

【问题讨论】:

标签: javascript


【解决方案1】:

这是一种更简单的方法:

"012345".split('').join(',')

同样的事情,除了 cmets:

"012345".split('') // Splits into chars, returning ["0", "1", "2", "3", "4", "5"]
        .join(',') // Joins each char with a comma, returning "0,1,2,3,4,5"

请注意,我将一个空字符串传递给split()。如果不传递任何内容,您将得到一个仅包含原始字符串的数组,而不是包含每个字符的数组。

或者,您可以不向join() 传递任何内容,默认情况下它会使用逗号,但在这种情况下,我更愿意具体说明。

不用担心速度 - 我确信没有任何明显的差异。如果您如此担心,那么循环也没有什么问题,尽管它可能更冗长。

【讨论】:

  • 如此简单,却又如此神奇。谢谢
【解决方案2】:

也许您可以使用“解构”功能:

let str = "12345";
//convertion to array:
let strArr = [...str]; // strArr = ["1", "2", "3", "4", "5"]

【讨论】:

    【解决方案3】:

    使用 Array.from 可能更明确。

    Array.from("012345").join(',') // returns "0,1,2,3,4,5"
    

    Array.from

    【讨论】:

    • 这是最好的答案,它有很好的浏览器支持,并且比其他任何东西都更具可读性
    【解决方案4】:
    1. 这是一个将单个单词转换为 char 数组的函数。没有充分的证据,但不需要太多。

      function toCharArray(str){
           charArray =[];
           for(var i=0;i<str.length;i++){
                charArray.push(str[i]);
           }
      
           return charArray;
      }
      

    【讨论】:

      【解决方案5】:

      你可以使用 Array 的原型 map 方法调用一个字符串:

      Array.prototype.map.call('012345', i => i); 
      // ["0", "1", "2", "3", "4", "5"]
      

      请在此处查看 MDN Array.prototype.map 文章的“通用地图”部分: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-30
        • 2015-09-27
        • 2014-02-27
        • 2013-08-25
        • 1970-01-01
        • 2019-11-26
        • 2018-12-02
        • 2013-10-08
        相关资源
        最近更新 更多