05
25

1. 배열에 유용한 메서드

  • console.table(arr) : console.log의 진화판. 이제 index와 값을 표로 보여준다!
  • arr.push('배열에 넣고 싶은 엘리먼트') : 배열의 가장 뒤에 엘리먼트를 추가한다.
     (값은 엘리먼트를 하나 넣은 후의 length를 반환!)
  • arr.pop () : 배열의 가장 뒤의 엘리먼트를 빼버린다. 그래서 빈칸으로 쓴다.
     (값은 빠지는 엘리먼트를 반환!)
  • arr.unshift('배열에 넣고 싶은 엘리먼트') : 배열의 제일 앞의 엘리먼트를 추가한다.
     (값은 엘리먼트를 하나 넣은 후의 length를 반환!)
  • arr.shift() : 배열의 제일 앞의 엘리먼트를 빼버린다.
     (값은 빠지는 엘리먼트를 반환!)
    • 깔끔한 정리 => 앞에 넣고(unshift), 앞에 빼고(shift), 뒤에 넣고(push), 뒤에 빼고(pop)
    • 반환할 때의 값을 주의해라! 그대로 retrun 하면 length나 빠질 엘리먼트 하나만 나온다. 계산 후에 원래 배열만 리턴하자!
  • indexOf('찾고자 하는 엘리먼트의 이름') : 배열 안에 있는 엘리먼트를 찾을 수 있다.
    • 결과 값으로는 그 엘리먼트가 있는 index값이 나오고, 만약 없으면 -1이 나온다.
    • Tip : indexOf('찾고자 하는 엘리먼트의 이름')!== -1 하면 블리언 값으로도 찾을 수 있다.
       있다면 index값을 반환하고, 없으면 -1을 반환하기 때문!
  • word.includes('찾고자 하는 엘리먼트 이름') : indexOf 써서!== -1 하는 것과 같은 결과를 준다. 블리언 값으로 나온다.
  • str.concat(배열 그대로 더할 배열) : 배열 + 배열이면 string 타입 그대로 더해 주지만, 이것으로 배열 그 자체로 더 해서 배열들의 배열을 만들 수 있다.
  • Math.max.apply(null, arr) : 배열 중에, 가장 큰 요소를 반환한다.
  • arr.splice(arr, arr에서 빼 버릴 index) : 특정 index의 엘리먼트만 뺀다. 앞뒤 말고 중간에서도 가능!
    • arr.splice(넣을 index, 그 뒤로 몇 개를 빼고 넣을 것인지, 넣을 엘리먼트) : 심지어 중간에 엘리먼트를 넣을 수 도 있다.
  • arr.join('기준으로 합쳐줄 문자열') : 기준을 하나 정해서 그 기준을 다 없애고 하나의 문자로 만들어 버린다.

2. 피보나치의 수열

 현재 항의 값이 이전 2개의 항의 합으로 계산되는 수열.

  • 이라고는 하나... 식으로 보는 게 이해가 빠르다.
    f(n) = {0, 1, F(n - 1) + F(n - 2)···}
    • 그 전전의 숫자부터 영향을 받는다고 생각하면 쉽다. 정말 단순하게 예시를 들자면,
        아침에 먹은 밥이 소화가 덜되서 위장에 남아 있는데 다시 점심을 먹어서 채운다!
      • (이해가 안되면 정상이다. 이해하려 하지 마라)
    • 이걸 자바스크립트로 가져오면?

function fibonacci(num) { let result = [0, 1] //0과 1일 때는 0과 1을 그대로 반환해야 하기 때문에 처음부터 넣어 둔다.
	if(num === 0) { //하지만 num가 0인 경우, [0, 1]을 반환하기 때문에 따로 조건문을 설정했다.
    	return [0]; }
    for(let i = 2; i <= num; i++) { //for문으로 2부터 num전까지 index의 모든 숫자를 얻을 수 있다.
    	result.push(result [i - 1] + result[i - 2]) //피보나치의 수열의 식을 그대로 사용! 그 후 배열에 더해준다. }
        	return result; 
            }

3. 객체

  • 여러 개의 변수가 자주 교체되어야 하는 경우 매우 화가 난다! 심지어 변수의 변화 속에서 관계성도 전혀 없다면??
  • 배열을 쓸 경우, 마찬가지, 각 index 값이 어떤 정보를 담고 있는지 알 수 없다.
    이럴 때 사용하는 것이 '객체'이다.
  • let 책상 위 물건 = { 컴퓨터 관련: '노트북'... 음악 관련: '이어폰'... 환경 관련: '선풍기'... };
  • 중괄호로 객체를 만들어준다!
  • '컴퓨터 관련'은 키(key)가 된다.
  • :(콜론) 뒤에 오는 것이 '노트북', '충전기' 등이 값(value)이 된다.

4. 객체의 값을 사용하는 법

  1. Dot motaion :
    • 객체 이름을 적고,.(Dot)점을 찍어서 값을 반환한다.
  2. 책상 위 물건. 음악 관련; => '이어폰'
  3. Bracket notation :
    • 객체 이름을 적고, ''대괄호와 그 안에 ' '를 쳐서 값을 반환한다.
    • ' '따옴표를 놓치면 큰일 난다! 따옴표가 없다면, '키'가 아니라 '변수'로 받아들이기 때문에,
       이 전에 변수 지정을 해주지 않아서 값을 찾을 수 없다고 에러가 뜰 거다.
    • 이 귀찮은걸 왜 쓰나? Dot notation 만 쓰면 안 되나?? : 안된다. 키값이 변화할 수 있으면, 무조건 bracket 써야 한다.
       정해진 키가 있을 경우에만 dot notation을 사용한다.
  4. 책상 위 물건['환경 관련'] => '선풍기'

5. 객체에 사용할 유용한 메서드

  • 이건 메서드는 아니지만... dot/bracket notation을 이용해 값을 추가할 수 있다. Ex:
  • 책상 위 물건['잡동사니'] = '커피통', '먼지'... 책상위 물건.보이지 않는것 = ['희망', '공부의 끝', '잠'...] //배열도 상관없다! 물론 블리언이나 숫자 뭐든지 다 된다!
  • delete : 삭제도 가능하다.
  • delete 책상위 물건. 잡동사니; //잡동사니 키와 값 모두 삭제한다.
  • in : 키의 존재 유무를 알 수 있게 됨. Ex :
  • '보이지 않는 것' in 책상 위 물건; //true; '놀 시간' in 책상위 물건; //false;

배열을 어찌 저지 끝냈다. 나쁘지 않은 것 같다.
오타가 여전히 많다. 페어 아니었으면 하루 종일 걸렸을 것 같다. 천천히 쓰자.
검색을 자주자주자주 더 자주 사용하자.

COMMENT