【发布时间】:2019-10-30 00:21:12
【问题描述】:
我正在尝试找到一种方法来为 JavaScript 上的每个字符拆分一个字符串,相当于 c# 中的String.ToCharArray()
以后用逗号加入他们。
例如:"012345" 拆分后 -> "['0','1','2','3','4','5']" 加入后 -> "0,1,2,3,4,5"
到目前为止,我遇到的是循环每个字符并手动添加逗号(我认为这很慢)
【问题讨论】:
标签: javascript
我正在尝试找到一种方法来为 JavaScript 上的每个字符拆分一个字符串,相当于 c# 中的String.ToCharArray()
以后用逗号加入他们。
例如:"012345" 拆分后 -> "['0','1','2','3','4','5']" 加入后 -> "0,1,2,3,4,5"
到目前为止,我遇到的是循环每个字符并手动添加逗号(我认为这很慢)
【问题讨论】:
标签: javascript
这是一种更简单的方法:
"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() 传递任何内容,默认情况下它会使用逗号,但在这种情况下,我更愿意具体说明。
不用担心速度 - 我确信没有任何明显的差异。如果您如此担心,那么循环也没有什么问题,尽管它可能更冗长。
【讨论】:
也许您可以使用“解构”功能:
let str = "12345";
//convertion to array:
let strArr = [...str]; // strArr = ["1", "2", "3", "4", "5"]
【讨论】:
【讨论】:
这是一个将单个单词转换为 char 数组的函数。没有充分的证据,但不需要太多。
function toCharArray(str){
charArray =[];
for(var i=0;i<str.length;i++){
charArray.push(str[i]);
}
return charArray;
}
【讨论】:
你可以使用 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
【讨论】: