我一直在尝试创建一个trimLeft()函数,我似乎在逻辑上画空白。
我不允许使用内置函数,如replace,splice,substr,substring,trim或toString。
我一直在努力:
function trimLeft(string){
var noSpace = '';
for(var o = 0; o < string.length; o++){
if (string.charAt(o) !== ' ' && string.charAt(o) !== "\t"){
noSpace += string.charAt(o);
}
}
return noSpace;
}
window.alert(trimLeft("|" + "\tAPPLE\t" + "|"));
但是它会删除所有空格而不是左侧。任何帮助将不胜感激。
答案 0 :(得分:1)
这是一个有效的解决方案:
function trimLeft(string) {
for (var o = 0; o < string.length; o++){
if (string.charAt(o) !== ' ' && string.charAt(o) !== "\t"){
return string.substring(o);
}
}
}
window.alert("|" + trimLeft("\tAPPLE\t") + "|");
&#13;
请注意,只要找到非空白字符,就会立即返回字符串的其余部分。
另请注意,使用window.alert()
的测试不起作用,因为您使用字符串"|\tAPPLE\t|"
测试了该函数,该字符串没有前导空格。
这是一个没有使用任何内置字符串函数的解决方案:
function trimLeft(string) {
var noSpace = "";
var isStart = true; // becomes false as soon as non-whitespace is found
for (var o = 0; o < string.length; o++) {
if (!isStart || (string[o] !== " " && string[o] !== "\t")) {
noSpace += string[o];
isStart = false;
}
}
return noSpace;
}
window.alert("|" + trimLeft("\tAPPLE\t") + "|");
window.alert("|" + trimLeft(" BANANA ") + "|");
&#13;