- 배열은 순서(인덱스)가 있는 값(요소)
- 2번째 인덱스의 값은 3번째 값이다
let myNumber = [1, 2, 3, 4, 5]
- myNumber[3] = 200; 이렇게 접근
- let myNumber [[13,30], [73,8], [44,17]];
- myNumber[1][0] 이렇게 73에 접근할 수 있음, 고차원배열, 배열중첩
- myNumber.length = 3 1부터개수
- myNumber.push(96) 배열끝에 96넣음
- myNumber.pop(); 마지막값 삭제
- 배열과 반복문을 조합하는 경우 많음
- for(let i = 0; n < myNum.length; i++) 0부터 길이보다 작을때까지
- for(let el of arr) 여기서 el은 i가 아니라 arr[i]역할을 함
- undefined + 10 = NaN 이므로 초기값 잘 설정하자
- typeof array > "object" 객체랑 배열이랑 구분불가
- Array.isArray([]) > true 이걸로 배열검사
- let arr['code', 'states']; 있을때 콘솔로그 말고
- console.table(arr) 하면 표모양으로 배열을 보여줌
- pop 말고 앞에있는 엘리먼트를 삭제하고싶다. > arr.shift()
- push 말고 맨앞에 엘리먼트를 추가하고 싶다 > arr.unshift('creative')
- let words = ['Radagast', 'the', 'Brown']; 있다치자
- 찾고자하는 요소가 있는지 궁금하면 words.indexOf('Brown') > 2 인덱스를 리턴함 없는단어는 -1 리턴 즉 조건문에선 존재하는가를 !==1로 따지면 된다.
- hasElement(배열, 찾으려는 엘리먼트) true or false를 하는 함수를 만들어보자
- let arr.indexOf(element) !== -1; 하면 됨.
- 사실 있음 words.includes('Brown') > true false만 알려줌
- Array.slice(-1)[0]
- arr.slice()
- arr.slice(2) // 인덱스 2번부터 끝까지
- arr.slice(2, 4) // 인덱스 2번부터 4-1번까지
- arr.slice(-2) //arr.length-2 부터 끝까지
- arr.slice(-5,-3) // arr.length-5 부터 arr.length-3-1까지
- .split함수로 ' ' 기준으로 단어 자른걸 배열로 넣을수있음
- arr1.concat(arr2)로 배열붙이기 가능
- splice(시작인덱스, 삭제할 개수, 추가하고 싶은 값)
- 되도록 객체값을 보호할 것
- 가장 낮은수를 굳이 넣어야한다면 안전한 Number.MIN_SAFE_INTEGER를 쓰자
- Math.max(...arr) // ...로 얕은복사
- return [...arr1, ...arr2] ...: 전개연산자
- 암기 Mutable Method : pop, push, shift unshift splice (원본배열 변경)
- 암기 Immutable Method : slice concat join (원본배열 안건듬)
- slice는 자른다기보다, 원본을 복사하는 메서드라고 이해하는게 쉽다.
- arr.join('')은 [0,1,0]을 '010'으로 쉼표없이 붙여준다.