Array 배열 사용하기


자바스크립트 배열 쓰기

배열 복제하기

var arguments = [1, 2, 3, 4, 5]

// slice 라는 함수 사용
const arr1 = arguments.slice()

// Array 객체의 from 함수 사용
const arr2 = Array.from(arguments)

// Array 객체 prototype의 내장함수 호출
const arr3 = Array.prototype.slice.call(arguments)

배열 잘라서 사용하기 slice, splice

slice는 그냥 잘라서 사용하는 거다. 기존의 모양에서 복사해서 새로 만든다.

// 배열이 있다고 보자
const arr = ['john', 'sam', 'jacob', 'robert', 'abraham']

// index 2 부터의 배열 자르기
arr.slice(2) // ['jacob', 'robert', 'abraham']

// index 2부터 (4 - 1)까지 배열 자르기
arr.slice(2, 4) // ['jacob', 'robert']

// 기존의 배열은 모양이 그대로다.

배열 모양을 새롭게 구성하기 map

map을 사용하면 배열의 모양을 새롭게 재구현할 수 있다.

예제1. 숫자 배열을 제곱값 배열로 바꾸어야하는 경우

// 기본 숫자 배열
const nums = [1, 2, 3, 4, 5]

// 제곱값으로 바꿔야 한다.
const squares = nums.map(Math.sqrt)

// 결과는 다음과 같다
// nums = [1, 2, 3, 4, 5]
// squares = [1, 4, 9, 16, 25]

예제2. 라이브러리 사용할 때 key-value 쌍의 모양을 바꿔서 사용해야하는 경우

// 처음에는 key 숫자, value 이름 으로 구성되어 있는 배열이 있다고 하자
const arr = [{1: 'john'}, {2: 'sam'}, {3: 'jacob'}] 

// 라이브러리를 사용할 때 가끔 형식을 지정해서 만들어야하는 경우가 있다.
// { key: 1, value: 'john' } 이런 모양으로 바뀌어야하는 경우에 쓸 수 있다.

const newArr = arr.map(function(curr, index, arr) {
    const newObj = {}
    newObj['key'] = Object.keys(curr)[0]
    newObj['value'] = Object.values(curr)[0]
})

// 결과는 이렇게 된다. 원본은 변하지 않는다
// arr = [{1: 'john'}, {2: 'sam'}, {3: 'jacob'}] 
// newArr = [{ key: 1, value: 'john'}, { key: 2, value: 'sam'}, { key: 1, value: 'jacob'}]

results matching ""

    No results matching ""