[TIL] 배열

Jade·2022년 9월 2일
1

Today I learn

목록 보기
9/77
post-thumbnail

배열


  • 배열은 순서(순서는 인덱스, 0부터)가 있는 값으로, 대괄호를 사용해 만든다.
    각각의 원소는 쉼표로 구분.
  • arr = [ 1, 2, 3 ] 일 때 arr[3]을 하면 없는 값이기 때문에 ‘undefined’가 나옴.
  • arr.length : 배열의 길이(속성)를 알아내도록 해줌.
  • arr.push() :매서드로 arr에 원소를 추가하라는 명령.




배열 매서드


Array.isArray() //특정 값이 배열인지 아닌지 판별 boolean 값 반환.

console.table(배열)//콘솔창에 배열을 표로 나타낸다.

배열.push(특정 값)//배열의 맨 뒤에 특정 값을 넣는다. 

배열.pop()//배열의 마지막 요소를 제거하고, 그 요소를 반환.

배열.shift()//배열의 첫번째 요소 제거하고, 그 요소를 반환.

배열.unshift()//배열의 첫번째 자리에 특정 값 넣음.

배열.indexOf(특정 값)//배열에 특정 값이 포함되어 있으면 그 값의 인덱스, 없으면 -1반환.
(배열.includes(특정값)//도 비슷한 기능. 브라우저 호환에 차이가 있음.)
 
배열.join(구분자)//배열의 각 요소를 구분할 문자열을 구분자로 지정하면 배열의 모든 요소들을 연결한 하나의 문자열을 반환한다. arr.length가 0이면 빈 **문자열** 반환.
//구분자가 아무것도 없으면 쉼표, ''빈문자열이면 다른 구분자 없이 다 붙여서 연결함. 




오늘의 오답노트


  1. arr.slice()는 어떻게 값을 입력하느냐에 따라서 배열을 자르는 방식이 다름.
const arr = [1, 2, 3, 4, 5, 6]

console.log(arr.slice(2)) // 인덱스 2부터 배열 끝 [3,4,5,6]
console.log(arr.slice(2,4))//첫번째 인덱스 ~ 두번째 인덱스 전 [3,4]
console.log(arr.slice(-2))//뒤에서 2번째 전까지 [5,6]
//뒤에서 셀 때도 인덱스는 0, -1, -2 이런 순서로 센다.
console.log(arr.slice(2,-1))//앞 인덱스2부터 뒷 인덱스 -1까지 앞 뒤 둘 다 포함. [3,4,5]
console.log(arr.slice())//[1,2,3,4,5,6]

  1. 배열 메서드에서는 mutable, immutable 여부가 중요!
    • array.shift(), arry.pop(), array.push(), array.unshift(), array.splice()는 mutable.
      원래 배열을 바꿈.
    • arrat.concat(), arr.slice(),array.join()은 immutable.
      원래 배열은 바꾸지 않고, 새로운 배열 반환.
      	각 매서드들이 무엇을 반환하는지도 중요!! 

  1. 주어진 배열을 바꾸지 않기 위해서 주어진 배열과 똑같은 원소를 가진 배열을 만들어 주어야 할 때 아래와 같이 slice 매서드를 사용할 수 있다.
let newArr = arr.slice()

  1. 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컬렉션 등이 이터러블이라고 함)
profile
키보드로 그려내는 일

0개의 댓글