String.ToCharArray()在JavaScript上等效吗?

时间:2012-01-06 17:11:32

标签: javascript

我正试图找到一种方法来为JavaScript上的每个字符拆分一个字符串,相当于来自c#的<{1}}

稍后用逗号加入。

分拆后的

ex:String.ToCharArray() - &gt;加入后"012345" - &gt; "['0','1','2','3','4','5']"

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

5 个答案:

答案 0 :(得分:39)

这是一种更简单的方法:

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

同样的事情,除了评论:

"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()并默认使用逗号,但在这种情况下我更喜欢具体。

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

答案 1 :(得分:2)

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

<template>
  <div id="app">
    <header class='main-header'>
      <div class='lennar-logo'></div>
    </header>
    <router-view/>
  </div>
</template>

<style lang="scss">
html, body {
  margin: 0; padding: 0;
  height: 100%;
  width: 100%;
}

body  {
  background-image: url('assets/bkg.png');
  background-repeat: no-repeat;
  background-size: cover;
}

#app {
  font-family: "Avenir", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

#nav {
  padding: 30px;
  a {
    font-weight: bold;
    color: #2c3e50;
    &.router-link-exact-active {
      color: #42b983;
    }
  }
}

.main-header {
  margin-top: 130px;
  margin-bottom: 75px;
  .lennar-logo {
    background: url('assets/lennar-logo.svg') no-repeat;
    height: 48px;
    margin: auto;
    width: 452px;
  }
}

.container {
  margin-right: auto;
  margin-left: auto;
  padding-right: auto;
  padding-left: auto;
  /* for edge cases: */
   height: 100%;
     max-height: 100%;
  width: 100%;
  max-width: 100%;
}

.hidden {
  visibility: hidden;
}
</style>

答案 2 :(得分:2)

  1. 这是一个将单个单词转换为char数组的函数。没有充分的证据,但并不需要花费很多时间。

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

答案 3 :(得分:0)

您可以使用在字符串上调用的Array的原型映射方法:

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

答案 4 :(得分:0)

使用Array.from可能更明确。

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

Array.from