有人在从字符串的开头到结尾逐个提取字符时经常这样写。
例如:
function rev1(str, i, ret) {
for (i = 1; i <= length(str); i++) {
ret = substr(str, i, 1) ret;
}
return ret;
}
我认为不一定非要使用length()。
function rev2(str, ch, i, ret) {
while (ch = substr(str, ++i, 1)) {
ret = ch ret;
}
return ret;
}
它有效,但是它是错误的吗?
答案1
你没有错(假设它的输入确实是一个字符串而不是一个数组),但结果代码不太清楚,因为它依赖于进行字符串比较的条件,因为 substr() 返回的是一个字符串。乍一看,我认为如果字符串包含 a 就会失败,0
但由于强制进行了字符串比较,所以不会失败。