문자열을 입력받아 순서가 뒤집힌 문자열을 리턴해야 합니다.
let output = firstReverse('codestates');
console.log(output); // "setatsedoc"
output = firstReverse('I love codestates');
console.log(output); // "setatsedoc evol I"
1) 문자열의 마지막 인덱스부터 첫 인덱스 값까지 역순으로 for문으로 조회한다.
2) 조회한 값을 새로운 변수 result
에 담아준다
function firstReverse(str) {
let result = ''
for (let i = str.length - 1; i >= 0; i = i-1) {
result = result + str[i];
} return result;
}
통과 👌
function firstReverse(str) {
return str.split('').reverse().join('');
}
캐릭터별로 나누어 배열로 만든 후, 배열 메소드 reverse()를 활용하여 순서를 역순으로 변경하여 다시 join()를 활용하여 문자열로 묶어 주었다.
문자열을 입력받아 문자열을 구성하는 각 단어의 첫 글자가 대문자인 문자열을 리턴해야 합니다.
let output1 = letterCapitalize('hello world');
console.log(output1); // "Hello World"
let output2 = letterCapitalize('javascript is sexy ');
console.log(output2); // "Javascript Is Sexy "
1) split 메소드를 활용하여 문자열을 (' ') 기준으로 배열을 만든다
띄어쓰기가 두 칸의 경우 배열로 만들어 보니 빈 문자열('')로 하나의 인덱스를 차지한다.
2) 배열의 각 인덱스를 for문으로 조회한다.
3) 빈 문자열 인데스를 제외하고 인덱스로 조회한 문자열의 첫 글자([0][0])만 uppercase 메소드 사용하여 대문자화하고 나머지를 (slice(1)) 그대로 담는다.
4) 업데이트한 새 인덱스 값을 각 인덱스에 수정한다.
5) join 메소드를 활용하여 다시 배열을 문자열로 묶는다.
function letterCapitalize(str) {
let strSplit = str.split(' ');
for (let i = 0; i < strSplit.length; i++) {
if (strSplit[i].length > 0) {
strSplit[i] = strSplit[i][0].toUpperCase() + strSplit[i].slice(1);
}
} let result = strSplit.join(' ');
return result
}
통과 👌
2차원 배열(배열을 요소로 갖는 배열)을 입력받아 각 배열을 이용해 만든 객체를 리턴해야 합니다.
const arr = [
['make', 'Ford'],
['model', 'Mustang'],
['year', '1964'],
['make', 'Bill'],
];
let output = convertListToObject(arr);
console.log(output) // -->
{
make : 'Ford'
model : 'Mustang',
year : '1964'
}
1) 배열을 for문으로 조회하여 0번의 인덱스의 첫 번째 값을 key로 선언하고, 두 번째 값을 value로 할당한다
2) 이미 동일한 ke가 들어가 있는 경우와 배열 내 배열이 빈 배열인 경우를 제외하는 조건을 넣는다.
3) 빈 배열이 인자값으로 들어가는 경우 빈 객체로 반환하기 위한 식도 추가해 준다.
function convertListToObject(arr) {
let obj = {}
if (arr.length === 0) {
return {}
}
for (let i = 0; i < arr.length; i++) {
if (obj[arr[i][0]] === undefined && arr[i].length !== 0) {
obj[arr[i][0]] = arr[i][1]
}
}
return obj;
}
통과 👌
문자열을 입력받아 해당 문자열에 등장하는 두 칸의 공백을 모두 한 칸의 공백으로 바꾼 문자열을 리턴해야 합니다.
let output = convertDoubleSpaceToSingle('string with double spaces');
console.log(output); // --> "string with double spaces"
1) split 메소드를 활용하여 두 칸의 공백(" ")을 기준으로 배열로 만듬
2) join 메소드를 활용하여 한 칸의 공백(" ")을 기준으로 string 타입으로 다시 묶음
function convertDoubleSpaceToSingle(str) {
return str.split(' ').join(' ');
}
통과 👌
function convertDoubleSpaceToSingle(str) {
let result = '';
let before = '';
for (let i = 0; i < str.length; i++) {
// 직전의 문자가 공백이고, 현재의 문자도 공백인 경우
// 즉, 현재의 문자가 두 번째 공백인 경우(에만), 무시한다.
if (before !== ' ' || str[i] !== ' ') {
result = result + str[i];
}
before = str[i];
}
return result;
}
before 변수의 값을 for문 안에 있는
before = str[i]
에서 가져온다.