我需要一个类似split
var string = "a|b|c"
console.log(string.split('|'))
获取字符串并使用循环将其拆分
function splitstr(str, charToSplit){
}
我希望('a|b|c', '|')
的输出为["a", "b", "c"]
答案 0 :(得分:3)
这是一个可以正常工作的简单解决方案:
function splitStr(str, separator) {
const parts = [];
let nextPart = '';
for (let i = 0; i <= str.length; i++) {
if (str[i] === separator || i === str.length) {
parts[parts.length] = nextPart;
nextPart = '';
} else {
nextPart += str[i]
}
}
return parts;
}
console.log(splitStr("abc|abcd|ac", "|"));
答案 1 :(得分:1)
您可以使用下面的代码。
此代码有8个步骤。
charToSplit
startIndex
和当前索引(不包括当前索引,即您要分割的字符)之间循环遍历output[currentIndex]
的值设置为空字符串(因为在不存在的内容上使用+=
不能正常工作output
startIndex
设置为当前索引+ 1(这是您要分割的字符之后的字符)currentIndex
会增加1。output
注意:第一个循环之后的最后一个额外循环将最后一个值添加到您的output
数组中。
function splitstr(str, charToSplit) {
var output = [];
var currentIndex = 0;
var startIndex = 0;
for (var i = 0; i < str.length; i++) {
if (str[i] == charToSplit) {
output[currentIndex] = "";
for (var x = startIndex; x < i; x++) {
output[currentIndex] += str[x];
}
startIndex = i + 1;
currentIndex++;
}
}
output[currentIndex] = "";
for (var i = startIndex; i < str.length; i++) {
output[currentIndex] += str[i];
}
return output;
}
console.log(splitstr("abc|abcd|ac", "|"));