[SEB FE 44] 객체

Heechang Jeong·2023년 2월 28일
0

CODE STATES

목록 보기
12/40
post-thumbnail

✍ 복습 자료

for of문 VS for in문

for...of문은 배열의 반복에서 사용되고,
for...in문은 객체의 반복에서 사용된다.



🎯 코드 리뷰

  • select

function select(arr, obj) {
  // TODO: 여기에 코드를 작성합니다.
  let result = {};
  for(let j of arr) { // 배열 인덱스에 해당하는 값
    for(let i in obj) { // 객체의 속성
      if(i === j) {
        result[i] = obj[i];
      }
    }
  }

  return result;
}



// const array1 = ['a', 'b', 'c'];

// for (const element of array1) {
//   console.log(element);
// }

// Expected output: "a"
// Expected output: "b"
// Expected output: "c"

  • countAllCharacters

function countAllCharacters(str) {
  let letter = str.split(''); // ['b', 'a', 'n', 'a', 'n', 'a']
  
  let count = 0;
  let obj = {};

  // 1. 빈 문자열일 때 빈 객체 리턴
  if(str.length === 0) return {};

  // letter의 b부터 시작
  // letter의 b와 str[i]가 같으면
  // count++ 후에 
  for(j of letter) {
    for(let i=0; i<str.length; i++){
      if(j === str[i]){
      count++;
      }
      obj[j] = count;
    } 
    count = 0;
  }
  return obj;
}

// 입력 : string => str
// 출력 : str을 키로 갖는 객체

// 빈 문자열 => 빈 객체

  • mostFrequentCharacter

function mostFrequentCharacter(str) {
  // TODO: 여기에 코드를 작성합니다.
  let obj = {};
  let count = 0;
  let mostStr = '';
  
  for(let i of str) {
    // 1. 띄워쓰기 제외
    if(i === ' ') continue;
    // 2. 처음엔 obj[i] 값이 없으므로 undefined이다 => 그래서 1을 넣어준다.
    if(obj[i] === undefined) { 
      obj[i] = 1;
    // 3. 그 이후로 같은 문자가 나오면 +1을 해준다.  
    } else {
      obj[i] +=1;
    }

    // 4. obj[i](문자를 count한 값) > count : mostStr(가장 많이 반복되는 문자)에 i를 넣어주고, 
    //     count(가장 많이 반복되는 문자의 횟수)에 obj[i]를 넣어준다.
    if(obj[i] > count) {
      count = obj[i];
      mostStr = i;
    }
  }
  
  // 5. string 타입 리턴
  return mostStr;
}


// 입력 : string => str
// 출력 : string

// 1. 띄워쓰기 제외
// 2. 처음엔 obj[i] 값이 없으므로 undefined이다 => 그래서 1을 넣어준다.
// 3. 그 이후로 같은 문자가 나오면 +1을 해준다.
// 4. obj[i](문자를 count한 값) > count : mostStr(가장 많이 반복되는 문자)에 i를 넣어주고, count(가장 많이 반복되는 문자의 횟수)에 obj[i]를 넣어준다.
// 5. string 타입 리턴


🏁 회고

객체 문제를 풀면서 어떤 값을 가지고 있는지 헷갈리는 부분들이 많았다. 그럴 때마다 console창에 어떤 값이 나오는지 확인하며 문제풀이를 진행했다. 내가 생각한 대로 값이 들어가지 않을 때도 있어서 앞으로 어떤 값이 나오는지 분명하게 확인하며 코드 작성을 해야겠다.



Reference

0개의 댓글