코플릿 /객체

안윤경·2022년 7월 9일
0

과제

목록 보기
4/20

15.select

function select(arr, obj) {
  let newobj = {};
  for( let i = 0; i < arr.length ; i++){ //obj안에 key변수를 찾는건데 key가 변순데 속성값은 없나싶어서? 다 key?
  for( let key in obj){
    if((arr[i]) ===key){
      newobj[key] = obj[key];
        }
 }
  return newobj;
}

헷갈린 점:
a[key] = obj[key]; 이부분에서 만약
const arr = ['a', 'c', 'e'];
const obj = { a: 1, b: 2, c: 3, d: 4 }; 일때
arr이는 a고 obj의 키도 a일때는 조건문에 해당이됨 -->
newobj[a] = obj[a]
newobj의 키 a는 obj[a]의 값인 1을 할당해주는것이되어
newobj[a] =1이 된다
즉 a라는 키의 값이 1인 것이 새로운 객체에 들어가는 셈

19.extend

function extend(obj1, obj2) {
 for (let key in obj2) {
   if (!(key in obj1)) {
     obj1[key] = obj2[key];
   }
 }
}

헷갈린점 :
같으면 원래 값을 그대로 두고 다를 때만 obj2의 값을 obj1에 추가해주는 것인데 즉
obj1={ a:1 ,b:2} 이고 obj2 ={ b:4,c:3}일때 obj를 반복해서 돌면 key값은 b와c가 나온다 obj2가 반복할때 이중반복문으로 obj1도 같이 도는데 obj1은 a와 b가 존재하니 만약 둘의 키값이 같으면 기존값을 그대로 두어야하니 - -->모름 ㅠ

20.countAllCharacters

function countAllCharacters(str) {
  let obj = {};
  for (let i = 0; i < str.length; i++) {
    if (obj\[str[i]] === undefined) {
      obj\[str[i]] = 0;
    }
    obj\[str[i]]++;
  }
  return obj;
} 이건 레퍼런스
function countAllCharacters(str) {
  // TODO: 여기에 코드를 작성합니다.
  //문자열을 스필릿으로 나누고 배열에 저장
  //배열을 반복문으로 순회하면서 빈객체에 배열의 요소를 키값 해당 키값이 반환된 횟수를 속성값
  //조건이 같은 key값이 존재할때와 존재하지 않을때로 
  let ans ={};
   const arr =str.split('');
   

   for(let key of arr){
     if(!(key in ans) ){
       ans[key] = 1;
     }else{
       ans[key] = ans[key] +1;
     }
   페어분과 한거

헷갈리는 점: 우선 반복문을 쓴다 왜냐? 횟수를 알아야하기 때문! 중요하다 반복문
obj[str[i]] 이부분이 이해가 안갔음
why? 문자열을 배열처럼 인덱스로 사용이 가능한가
a: 위에 slice처럼 문자열의 마지막을 제외하고 뺄 수있는 것처럼 이것도 가능한듯 싶다?(확실한지 아직모름)

21.mostFrequentCharacter
은 다시 ㅜ

profile
프론트엔드 개발자 안윤경입니다

0개의 댓글