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
은 다시 ㅜ