<aside> 💡 객체의 속성값 조회
function getProperty(obj, property) {
// property 변수를 받아서 쓰기 때문에 문자열로 받지 않는 bracket사용
return obj[property];
}
</aside>
내 풀이
문제
객체를 입력받아 키, 값 쌍을 표현하는 문자열을 리턴해야 합니다.
각 문자열은 한 줄에 키: 값 형태로 구성되며, 각 문자열 끝에는 줄바꿈 문자가 포함되어야 합니다.
입력
인자 1 : obj
임의의 속성을 갖는 객체
출력
string 타입을 리턴해야 합니다.
주의 사항
콜론 다음에 공백을 포함해야 합니다.
각 문자열 끝에 줄바꿈 문자를 포함해야 합니다.
입출력 예시
const obj = { name: 'Steve', age: 13, gender: 'Male' };
let output = printObject(obj);
console.log(output); // -->
/*
name: Steve
age: 13
gender: Male
*/
힌트
줄바꿈 문자는 \\n로 표현됩니다. hello\\nworld\\n 의 출력은 다음과 같습니다.
hello
world
내 풀이
function printObject(obj) {
//result에 문자열에 넣어서 1)개행문자 작동 2)한꺼번에 리턴
//주의 : return한번만 해도 바로 끝남
let result = '';
for(key in obj){
result = result+ key + ': ' + obj[key] + "\\n";
}
return result;
}
실행 결과
테스트 결과가 없습니다.
문제
문자열을 입력받아 문자열을 구성하는 각 문자(letter)를 키로 갖는 객체를 리턴해야 합니다.
각 키의 값은 해당 문자가 문자열에서 등장하는 횟수를 의미하는 number 타입의 값이어야 합니다.
입력
인자 1 : str
string 타입의 공백이 없는 문자열
출력
각 문자를 키로 갖는 객체를 리턴해야 합니다.
주의 사항
빈 문자열을 입력받은 경우, 빈 객체를 리턴해야 합니다.
입출력 예시
let output = countAllCharacters('banana');
console.log(output); // --> {b: 1, a: 3, n: 2}
내 풀이
function countAllCharacters(str) {
// 문자열 for 반복문
//for of, for in, in
// 처음 등장 : 키값 =1
// 두번째부터는 : 키값 ++;
let obj= {};
for(s of str){
if( s in obj){
obj[s]++;
}else{
obj[s] = 1;
}
}
return obj;
}
21. mostFrequentCharacter
문제
문자열을 입력받아 가장 많이 반복되는 문자(letter)를 리턴해야 합니다.
입력
인자 1 : str
string 타입의 공백이 있는 문장
출력
string 타입을 리턴해야 합니다.
주의 사항
띄어쓰기는 제외합니다.
가장 많이 반복되는 문자가 다수일 경우, 가장 먼저 해당 횟수에 도달한 문자를 리턴해야 합니다.
빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다.
입출력 예시
let output = mostFrequentCharacter('apples not oranges');
console.log(output); // --> 'p'
output = mostFrequentCharacter('hello world');
console.log(output); // --> 'l'
output = mostFrequentCharacter(' ');
console.log(output); // --> ''
output = mostFrequentCharacter('');
console.log(output); // --> ''
output = mostFrequentCharacter('abba');
console.log(output); // --> 'b'
내 풀이
function mostFrequentCharacter(str) {
//문자열 반복문 for of
//문자 등장 시 key = 1;
//이후 : +1
//값이 가장 큰 키를 리턴
let obj={};
let maxCount=0;
let frequentChar='';
if(str === ''){
return '';
}
//빈 문자열 예외
for(let s of str){
if(s !== ' '){
//띄어쓰기 제외
if(!(s in obj)){
obj[s]=1;
//처음 등장 경우 먼저
}else{
// 두번째부터 세는데
obj[s]++;
if(obj[s]>maxCount){
//s마다 바로바로 max와 비교
// >= 아니니까 먼저 도달한 문자 리턴
frequentChar = s;
maxCount = obj[s];
}
}
}
}
return frequentChar;
}