💡
.toLowerCase
,.toUpperCase
,.split()
.join
1.
function solution(s){
let p = 0; //알파벳 p의 개수를 담는 변수
let y = 0; //알파벳 y의 개수를 담는 변수
for (let i = 0; i<s.length; i++){
if (s[i] === "p" || s[i] ==="P"){
p++; //하나가 증가 라는 뜻
} else if(s[i] ==="y" || s[i]==="Y"){
y++;
}
}
return p === y
}
2. toLowerCase
function solution(s){
s = s.toLowerCase();
let p = 0; //알파벳 p의 개수를 담는 변수
let y = 0; //알파벳 y의 개수를 담는 변수
for (let i = 0; i<s.length; i++){
if (s[i] === "p" ){
p++; //하나가 증가 라는 뜻
} else if(s[i] ==="y" ){
y++;
}
}
return p === y
}
3. 객체를 이용해서 어떤 데이터든 동적으로 저장
function solution(s){
s=s.toLowerCase();
const obj = {};
for(let i =0; i<s.length; i++){
if (obj[s[i]]===undefined){
obj[s[i]]=0;
}
obj[s[i]]++;
}
return obj.p === obj.y
}
위처럼 하면 불필요한 변수가 줄어든다. 객체안에 100개든 1000개든 담을 수 있어서 더 안정성이 있다. 조건문 잘 보기. 언디파인 이라면,,!
4.메서드 split
function solution(s){
s=s.toLowerCase();
return s.split("p").length - 1 === s.split("y").length -1;
//문자열을 배열로 만들 때 split("")썼었음. 안에 어떤 기준으로 쪼갤지 결정해주면 된다.
}
split 사용 방법 참고..!
단어별로 인덱스 나누기
1. for문
function solution(s) {
let answer = '';
let idx = 0; //전체 인덱스가 아닌, 단어별로의 인덱스를 저장하는 변수
for(let i =0; i<s.length;i++){
answer += idx % 2 === 0 ? s[i].toUpperCase() : s[i].toLowerCase();
if (s[i] === " ") {
//공백일 경우 , idx를 0으로 초기화
idx = 0;
}else {
//공백이 아닐경우 idx를 카운트한다
idx++;
}
}
return answer
}
2.메서드 .join
(별개의 인덱스 만드는 방법)
function solution(s) {
return s.split(" ") //문자열마다 서로 다른 인덱스값을 가지게 된다.
.map(words =>{
return words.split("") //이중배열 형태가 출력된다. 맵이 돌리는게 배열이었으니까.
.map((letter, i) =>{
return i % 2 === 0 ? letter.toUpperCase : letter.toLowerCase
}).join("")
}).join("")
}
join 참고