문자열의 처음부터 끝까지 문자를 하나씩 추출할 때 누군가는 이렇게 쓰는 경우가 많습니다.
예를 들어:
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
강제로 문자열 비교를 하기 때문에 실패하지 않습니다.