배열
- 배열은 순서(순서는 인덱스, 0부터)가 있는 값으로, 대괄호를 사용해 만든다.
각각의 원소는 쉼표로 구분.
- arr = [ 1, 2, 3 ] 일 때 arr[3]을 하면 없는 값이기 때문에 ‘undefined’가 나옴.
- arr.length : 배열의 길이(속성)를 알아내도록 해줌.
- arr.push() :매서드로 arr에 원소를 추가하라는 명령.
배열 매서드
Array.isArray()
console.table(배열)
배열.push(특정 값)
배열.pop()
배열.shift()
배열.unshift()
배열.indexOf(특정 값)
(배열.includes(특정값)
배열.join(구분자)
오늘의 오답노트
- arr.slice()는 어떻게 값을 입력하느냐에 따라서 배열을 자르는 방식이 다름.
const arr = [1, 2, 3, 4, 5, 6]
console.log(arr.slice(2))
console.log(arr.slice(2,4))
console.log(arr.slice(-2))
console.log(arr.slice(2,-1))
console.log(arr.slice())
- 배열 메서드에서는 mutable, immutable 여부가 중요!
- array.shift(), arry.pop(), array.push(), array.unshift(), array.splice()는 mutable.
원래 배열을 바꿈.
- arrat.concat(), arr.slice(),array.join()은 immutable.
원래 배열은 바꾸지 않고, 새로운 배열 반환. 각 매서드들이 무엇을 반환하는지도 중요!!
- 주어진 배열을 바꾸지 않기 위해서 주어진 배열과 똑같은 원소를 가진 배열을 만들어 주어야 할 때 아래와 같이 slice 매서드를 사용할 수 있다.
let newArr = arr.slice()
- for...of문 : for (let item(변수 선언문) of arr(객체) ) 와 같이 사용해서 객체의 프로퍼티 키에 해당하는 값들이 하나씩 변수에 할당되며 반복되는 반복문.
function getEvenNum(arr){
let result = [];
for (let el of arr) {
if (el % 2 === 0) {
result.push(el);
}
}
return result;
}
!!!!! for...of문의 반복되는 대상에 들어가야 하는 것은 사실 객체가 아니고 이터러블이라고 한다... (문자열, 배열, MAP,SET,DOM컬렉션 등이 이터러블이라고 함)