TIL_20.12.15
- 오늘의 공부
-
객체 Coplit(Pair Programming) 20/21 완료.
-
Primitive / Reference / Scope / Closure
-
Checkpoint - Primitive / Reference / Scope / Closure
- 객체 키 개수 세기 / Object.keys(obj).length ;
제가 작성한 코드
let testObj = {a : 1, b : 2, c : 3}
function countObjKey(obj){
let count = 0 ; // key 개수를 세기 위해 변수 선언, 0 할당 === 0개
for(let key in obj){
// for...in 문을 사용해 객체 순회
count ++ ;
// 객체를 순회 할 때마다 count 1씩 증가
console.log("key는"+key, "count는 " + count)
// for...in이 돌아가는 것을 참고하기 위해 console.log 사용
}
return count;
}
// testObj를 전달 인자로 주어 함수 실행
countObjKey(testObj)
(출력)
key는 a, count는 1
key는 b, count는 2
key는 c, count는 3
<- 3
하지만 .... reference를 통해 쉽고 간단한 방법을 알게 됐다
return Object.keys(obj).length;
(출력)
<- 3
Object.keys() method는 object의 키를 새로운 배열에 넣어주는 method고 .length property를 사용해 길이를 return하게 되면 우리가 원하는 객체의 key가 몇 개인지 확인할 수 있게 됩니다.
- 배열 문제 풀이
- 중요한 시험에 출제돼 6시간?!.. 동안 헤매게 만든 것과 비슷한 문제가 나와 새로 알게 된 방법을 사용해 풀어보았다. Pair 분께 보여드리면서 설명하고 싶어 주석을 달게 됐다. 아직은 설명이 미숙하지만 잘다듬어 누구나 쉽게 이해할 수 있도록 programming하는 개발자가 되고 싶다
function countLetter(str) {
// 문제
// 문자열을 입력받아 문자열을 구성하는
// 각 문자(letter)를 키로 갖는 객체를 리턴해야 합니다.
// 각 키의 값은 해당 문자가
// 문자열에서 등장하는 횟수를 의미하는 number 타입의 값이어야 합니다.
// 객체를 리턴해야하기 때문에 새로운 객체 선언, 빈 객체 할당
let result = {};
// 문자열을 하나씩 읽고 객체의 key로 생성
for(let i = 0; i<str.length; i++){ // 문자의 길이만큼 순회
// 주의해야 할 점은 'apple' 예를 들면 'p'가 두 번 있어
// str[1] === 'p'이고 str[2] === 'p'이기 때문에
// 중복을 방지해줘야 한다
// obj 객체에 키가 있는지 확인하는 방법은
// (key in obj) !! // obj에 key가 있으면
// true, obj key가 없으면 false
if(!(str[i] in result)){
result[str[i]] = 1;
// 여기서 value를 1로 준 것은 key의 value가 문자열에서 등장하는 횟수이기 때문에
// 첫 번째로 나온 문자라 value를 1로 주었습니다.
// 여기까지 !
// 우리는 for문과 if문을 통해 문자열의 첫 번째 글자에 대해 result 객체에 key와 value로 추가해줬고
// 이제는 str[i]와 똑같은 문자가 문자열 내에 있는지 확인하기 위해
// for문을 한 번 더 만들어 실행합니다.
for(let j = i+1; j<str.length; j++) {
// j를 i + 1 로 선언해준 것은 i는 0부터 시작해 i가 아닌 i뒤 부터 중복되는 문자를 찾아야 하기 때문에 설정
if(str[i] === str[j] ){
result[str[i]]++
// 똑같은 문자를 발견했을 시 str[i] key의 value 값 1씩 증가
}
}
}
}
return result;
}
끝!
Author And Source
이 문제에 관하여(TIL_20.12.15), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@duck-moon9392/TIL20.12.15저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)