【发布时间】:2017-09-07 21:57:13
【问题描述】:
我正在尝试解决 Codewars 上的 Strip Comments 挑战。问题描述是——
完成该解决方案,以去除传入的任何一组注释标记之后的所有文本。还应去除行尾的任何空格。
输入和预期输出的屏幕截图 -
我解决问题的方法是——
- 将输入字符串拆分为一个数组。创建一个新数组来保存结果。
- 对于第一个数组(输入)中的每个字符,如果该字符不是标记,则将其压入结果数组。
- 如果字符是标记,则忽略所有后续字符,直到遇到换行符
\n。此时,继续推入结果数组。 - 重复直到输入数组结束。
- 加入结果数组,修剪字符串并返回。
我的代码 -
function solution(input, markers) {
let markerFound = false;
let stripped = [];
let letters = input.split('');
for (let i = 0; i < letters.length; i++) {
if (markers.includes(letters[i])) {
markerFound = true;
}
if (markerFound && letters[i] === "\n") {
markerFound = false;
}
if (!markerFound) {
stripped.push(letters[i]);
}
}
return stripped.join("").trim();
}
console.log(solution("apples, pears # and bananas\ngrapes\nbananas !apples", ["#", "!"]));
我不确定测试失败的原因。预期和返回的输出在我看来是一样的 -
【问题讨论】:
标签: javascript arrays text