아래에있는 문자 중 하나인지 확인해야하는 자바 스크립트 코드 아래에 있습니다. 그러나 내가 예를 들어, "안녕하세요"를 입력 할 때 그것은 또한 'H', 'L', 'L 자바 스크립트 또는 같음
woord.charAt(i) == 'a' || 'e' || 'i' || 'o' || 'u'
내가 무슨 일을 했는가
를 계산?아래에있는 문자 중 하나인지 확인해야하는 자바 스크립트 코드 아래에 있습니다. 그러나 내가 예를 들어, "안녕하세요"를 입력 할 때 그것은 또한 'H', 'L', 'L 자바 스크립트 또는 같음
woord.charAt(i) == 'a' || 'e' || 'i' || 'o' || 'u'
내가 무슨 일을 했는가
를 계산?문장을 작성하는 것처럼 코드를 작성하는 것처럼 보입니다.이 경우에는 제대로 변환되지 않습니다. 위 코드는 그 표현식이 실제로 어떻게되는지 보여줍니다.
각 문자열과 문자를 개별적으로 비교하거나 정규 표현식을 작성해야합니다. 정규식 더 컴팩트과 같을 것이다 :
/[aeiou]/.test(word.charAt(i))
사용이 대신
var str = "My string";
var chr = "";
var nVowels = 0;
for (pos = 0; pos < str.length; pos++){
chr = str.charAt(pos).toLowerCase();
if (chr == "a" || chr == "e" || chr == "i" || chr == "o" || chr == "u")
nVowels++;
}
친애하는 신 ... 너무 많은 사람들이 비교하고, 대문자와 소문자 비교를 피하기 위해 toLowerCase()를 사용했을 수 있습니다. 심지어 스위치 케이스 구조도 더 깨끗 해 보일 것입니다. – TheZ
빠른 답변 주셔서 감사합니다. 나는 'chr =='뒤에 ||를 추가하는 것을 잊었다. – user1825015
별도로 각 옵션을 선택해야하는 문제가 기본적으로
var c = woord.charAt(i);
if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'){
vowels++;
}
케이스 문제, toLowerCase() 사용 – TheZ
감사합니다. 그것은 효과가 있었고 코드는 훨씬 짧았습니다. 감사의 친구 – user1825015
@ user1825015'var c = woord.charAt (i) .toLowerCase();'를 사용하면 'A', 'E', 'I', 'O', 'U' '와 같은 "HELLO" – TheZ
에 다른 접근 방법을 사용해보십시오 그러나 이것은 추악하고 너무 잘 수행하지 않습니다. 차라리 받아 들인 문자의 배열을 만들고 배열 내의 현재 문자의 색인을 검사 할 것입니다.
var vowels = new Array('a', 'e', 'i', 'o');
var word = 'hello';
var vowelCount = 0;
for(var x=0; x < word.length; x++){
var ch = word.charAt(x).toLowerCase();
if (vowels.indexOf(ch) > -1)
vowelCount++;
}
빠른 답변 감사드립니다. 나는 프로그래밍에 익숙하지 않아서 ur 코드를 사용할 수 없었다. 그러나 나는 그것을 약간 이해한다. – user1825015
@ user1825015 정규식을 배우는 것이 빠를수록 문자열 파싱이 훨씬 까다로워집니다. – TheZ
예, 프로그래밍 첫 해를 시작했습니다. 이 'Regex'를 빨리 배울 수 있기를 바랍니다. 코드가 훨씬 더 짧아지기 때문입니다. – user1825015