Array(배열)

tapata·2022년 2월 24일
0

Array

  • built-in objects > indexed collections > Array

properties

  • length : number : 요소 개수

static methods

  • Array.from() => array :
  • Array.isArray(obj) => boolean

Array 생성하기


// static
Array.from('Apple') // ['A','p','p','l','e']
Array.from([1,2,3],(el)=>el*el) // [1,4,9]
Array.isArray({}) // false
Array.of(1,2,3,'hello') // [1,2,3,'hello']

// literal
let array = [0,10,20,30,40]


// constructor
const arr = new Array()

Array 요소에 접근하기

  • arr[i]
  • 범위에 없는 요소에 접근하면 undefined 리턴

Array methods

  • mutable : 원본 배열을 그대로
  • immutable : 원본 배열 자체를 변화

Array Index를 리턴하는 methods

  • indexOf(val) -> number
  • findIndex(pred) -> number
  • 없는 경우 -1 리턴
array[2] // 20
let idx = array.indexOf(20) // idx = 2


array = [0,10,20,30,40]
let bt3 = array.find(el=> el>30)  // bt3=40, 처음으로 조건을 만족하는 요소 반환
let bt3Idx = array.findIndex(el=>el>3) // bt3Idx = 4 , 처음 조건만족 하는 요소의 인덱스 

Array에 값 추가, 삭제하기

  • push, pop
  • shift, unshift
// add
let cnt = array.push(50,60) // array=[0,10,20,30,40,50,60] , cnt=5
cnt = array.unshift(-10) // array = [-10,0,10,20,30,40,50,60], cnt=6

// remove
let lastEl = array.pop()  // array=[-10,0,10,20,30,40], lastEl = 60
let firstEl = array.shift() // array=[0,10,20,30,40] , firstEl = -10

Array 삭제시 원본배열 변화

  • filter : true인 요소만 담은 새배열, 원본배열 그대로
  • splice : 특정 인덱스 요소 직접 제거가능
    • findIndex 로 인덱스 찾기
    • splice(index,1) : index 부터 1개 제거

Array 반복문

  • forEach
// forEach
array.forEach((el,idx,array)=>console.log(el)) // 

Array 슬라이싱

  • splice : 원본 배열에 영향, 원소 삭제에도 사용가능
    • splice(i,n) -> array : i번째 부터 n개 삭제하고 삭제한 원소 배열에 담아 리턴
    • splice(i,n,el) -> array : 삭제한 위치에 el 추가
  • slice : 원본 배열에 영향 없이, 새로운 배열 리턴
// slice
let cp = array.slice() // shallow-copy   cp = [0,10,20,30,40], 기존 array에 영향 없음
let sub = array.slice(1,3) // sub = [10,20]

// splice
let erased = array.splice(1,2) // erased = [10,20] (array[1] 부터 2개의 요소) , array=[0,30,40]
erased = array.splice(1,0,20) //  erased = [], array = [0,20,30,40]

Array 요소 찾기

  • find((x)=> x === wanted) : 주어진 조건을 만족하는 가장 첫번째 요소 반환, 없으면 undefined
  • includes(x) -> boolean : 특정 요소 포함여부 검사
// includes
let check = arr.includes(60) // check = false

Array 정렬 메서드

  • reverse() -> array : 원본 배열 역순 + 원본 배열 리턴
// sort
array = [3,5,1,2,4]
array.sort() // [1,2,3,4,5]
array.reverse() // [5,4,3,2,1] 

Array 기타 메서드

array=[0,1,2,3,4,5]
// concat, 합치기
let newArr = array.concat([6,7]) // newArr=[0,1,2,3,4,5,6,7]

// join
array=['Hello','World']
let str = array.join(' ') //'Hello World'

Destructuring assignment

const people = ['James','Jamie','Jason','John'];

const [p1,p2, ...rest] = people;

Array 복사하기

shallowCopy

  • 얕은복사
let shallowCopy = original.slice()
profile
hello

0개의 댓글