10일차

2021. 7. 30. 20:41
반응형

2021. 07. 30 금요일

지금까지는 일기형식으로 써왔는데, 오늘부터 TIL(Today I Learned)형식으로 구성을 갖춰서 작성해보려 한다. 어떤 구성으로 쓸거냐 하면

3가지(+1가지) 큰 형식에 맞춰 쓸 계획이다.

1. 오늘 배운것 : Today's Key points!

2. 배우면서 의문이 들었던거나 추가적인 공부가 필요한 것. : 공부해보자!

3. 문제를 풀었거나, 페어와 함께 알고리즘 구조를 짰다면 : 복습 하기!

  (+ 4. 오늘 느낀 감정.)

 

1. Today's Key points!

  • 배열의 기초를 배우고 코플릿을 통해 문제를 풀었다. 코플릿 문제중 가장 이해가 안된 문제를 다시 풀어보고자 한다.
  • 객체를 배웠고 간단하게 정리 해보고자 한다.

2. 공부해보자!

  • 배열은 typeof로 타입을 리턴받을 수 없다. null 도 마찬가지
  • index, element, length, slice, splice, split, join
  • 객체 속성 조회법 2가지. dot notation, bracket notation의 차이
  • 객체 할당, 삭제 (obj.a = 'hello' / delete)

index : 배열의 element 위치를 가르치는 숫자

element : 배열의 요소

length : 배열에서는 배열 요소의 갯수를 말함

unshift : 배열의 맨앞에 추가. return값은 추가된 후의 배열의 총 길이. 원본배열을 수정.

shift : 배열의 맨앞에 제거. return값은 제거된 후의 배열의 총 길이. 원본배열을 수정.

push : 배열의 맨 뒤에 추가. return값은 추가된 후의 배열의 총 길이. 원본배열을 수정.

pop : 배열의 맨 뒤에 제거. return값은 제거된 후의 배열의 총 길이. 원본배열을 수정.

slice : arr.slice(start, end) end제외하고 추출한다. 예를 들어, slice(1,4)는 두번째 요소부터 네번째 요소까지 (1, 2 및 3을 인덱스로 하는 요소) 추출합니다. end가 생략되면 배열의 끝까지, end가 length보다 길어져도 배열의 끝까지 추출. slice(-2)이면 끝에서 2개 추출. slice(1, -1) 1번째 인덱스부터 끝에서 2번째 요소까지 추출. 원본을 건들이지는 않는다.

splice : splice(1,2) 1번째 인덱스부터 2개 요소 제거(1번째 인덱스 포함). splice(1,2, item1, item2, ...) 1번째 인덱스부터 2개 요소 제거(1번째 인덱스 포함)후 item1, item2, ... 요소 추가. 원본배열을 수정.

split : 문자열을 배열로 변환. split(' ')이면 띄워쓰기를 구분해서 배열로 변환. ex) str = 'I love coding' , str.split(' ') -> ['I', 'love', 'coding'], str.split(' ').join(' ') -> 'I love coding'

join : 배열을 문자열로 변환. join(' ')이면 띄워쓰기를 구분해서 문자열로 변환. ex) arr = ['I', 'love', 'coding'], arr.join(' ') -> 'I love coding'

객체 속성 조회법 dot notation : obj = { name : 'gyosic',

                                                                 age : 28,

                                                              hobby : 'coding'}

                                                  obj.name // 'gyosic'

여기서 name, age, hobby를 key라고 하고, 'gyosic', 28, 'coding'을 value(값)라고 한다.

' . '을 통해서 객체안의 속성을 조회한다.

bracket notation : obj['name'] // 'gyosic' 이때 주의해야 할 점은 [] 안에 'name'이라고 써주면 객체안의 key로서 받아들이는데, 그냥 name이라고 쓰면 name을 변수로 받아들이기 때문에 객체안의 속성을 조회할 수 없다. 이 부분을 알고 상황에 맞게 사용해 주어야 한다.

객체 할당 : obj.email = 'zpzptls@naver.com' 이라고 해주면 obj객체에 email : 'zpzptls@naver.com' 이 추가된다.

객체 삭제 : delete obj.name 이라고 해주면 obj객체에 name : 'zpzptls' 이부분이 삭제된다. // obj = {age : 28, hobby: 'coding',}

3. 복습 하기!

getAllLetters

처음에 for구문 안에 result = result.push(str[i]); 이렇게 작성을 했었는데, result.push가 함수가 아니라는 오류가 떴다. 이렇게 메소드를 사용할 때는 굳이 result = 이라고 앞에 해주지 않아도 할당이 되는듯 하다. 그리고 조금 더 생각해보니 말이 안되긴 한다. 무언가를 연산을 해주는 작업이 필요하면 result = 처럼 해줄 필요가 있는것 같은데, 배열 메소드를 사용할 때는 저렇게 하면 안된다는 걸 알 수 있었다.

 

fibonacci 배열 함수 만들기.

수(num)를 입력받아 num번째까지

총 num + 1개의 피보나치 수열을 리턴해야 합니다.

0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다.

그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...

배열을 리턴해야 합니다.

반복문(for)문을 사용해야 합니다.

피보나치 수열은 0번부터 시작합니다.

처음에는 이중반복문을 써야하나 생각했는데, 그게 아니었고,

sum = sum + i 같은 방식을 사용해서 배열에 추가해주면 되지 않을까 생각했는데 이것도 아니었다.

왜냐하면 저렇게 되면 앞에 숫자랑 i랑 더해지는 것이기 때문에 피보나치 수열이 되지않는다.

그래서 배열에서 맨끝 수랑 그 앞수가 더해지는 문장을 만들어야 했다.

그 결과가 위의 사진에 나와있다.

반응형
LIST

'코드스테이츠 수강 TIL > Section 1' 카테고리의 다른 글

15일차  (0) 2021.08.06
14일차  (0) 2021.08.05
13일차  (0) 2021.08.04
12일차  (0) 2021.08.03
11일차  (0) 2021.08.02

BELATED ARTICLES

more