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. 객체의 값을 사용하는 법
- Dot motaion :
- 객체 이름을 적고,.(Dot)점을 찍어서 값을 반환한다.
책상 위 물건. 음악 관련; => '이어폰'
- Bracket notation :
- 객체 이름을 적고, ''대괄호와 그 안에 ' '를 쳐서 값을 반환한다.
- ' '따옴표를 놓치면 큰일 난다! 따옴표가 없다면, '키'가 아니라 '변수'로 받아들이기 때문에,
이 전에 변수 지정을 해주지 않아서 값을 찾을 수 없다고 에러가 뜰 거다. - 이 귀찮은걸 왜 쓰나? Dot notation 만 쓰면 안 되나?? : 안된다. 키값이 변화할 수 있으면, 무조건 bracket 써야 한다.
정해진 키가 있을 경우에만 dot notation을 사용한다.
책상 위 물건['환경 관련'] => '선풍기'
5. 객체에 사용할 유용한 메서드
- 이건 메서드는 아니지만... dot/bracket notation을 이용해 값을 추가할 수 있다. Ex:
책상 위 물건['잡동사니'] = '커피통', '먼지'... 책상위 물건.보이지 않는것 = ['희망', '공부의 끝', '잠'...] //배열도 상관없다! 물론 블리언이나 숫자 뭐든지 다 된다!
- delete : 삭제도 가능하다.
delete 책상위 물건. 잡동사니; //잡동사니 키와 값 모두 삭제한다.
- in : 키의 존재 유무를 알 수 있게 됨. Ex :
'보이지 않는 것' in 책상 위 물건; //true; '놀 시간' in 책상위 물건; //false;
배열을 어찌 저지 끝냈다. 나쁘지 않은 것 같다.
오타가 여전히 많다. 페어 아니었으면 하루 종일 걸렸을 것 같다. 천천히 쓰자.
검색을 자주자주자주 더 자주 사용하자.
'Coding > Today I Learned' 카테고리의 다른 글
2021.05.27(Thu.) <CSS로 틀 만들기, Flex> (0) | 2021.05.27 |
---|---|
2021.05.26(Wed.) <Break, Continue) (0) | 2021.05.26 |
2021.05.24(Mon.) <Git을 이용해 여러명이서 작업을 할 때> (0) | 2021.05.24 |
2021.05.23(Sun.) <문자열 가장 마지막 자르기> (0) | 2021.05.23 |
2021.05.23(Sat.) <소수 공략법> (0) | 2021.05.23 |