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'}]