我正试图找到一种方法来为JavaScript上的每个字符拆分一个字符串,相当于来自c#的<{1}}
稍后用逗号加入。
分拆后的 ex:String.ToCharArray()
- &gt;加入后"012345"
- &gt; "['0','1','2','3','4','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)
这是一个将单个单词转换为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)