Array Dictionary

· Array method

Array()

Array 객체를 생성한다.

let arr = new Array()				// return 빈 array 객체
let arr = new Array(num)			// return 길이가 num 인 객체
let arr = new Array('A', 'B', 'C')	// reutn ['A', 'B', 'C']
let arr = ['A', 'B', 'C']			// reutn ['A', 'B', 'C'] 위 방식과의 차이점은 없다.

Array.from()

반복가능한 객체를 배열로 만든다.

Array.from('abc')	// return ['a', 'b', 'c']

배열 내 각 요소에 계산식을 실행한 후 배열로 반환한다.

Array.from([1, 2, 3], x => x + x);	// return [2, 4, 6]

Array.isArray()

매개변수가 배열일 경우 True, 배열이 아닐 경우 False를 반환한다.

Array.isArray([1,2,3])	// return true
Array.isArray(123)		// return false

Array.of()

매개변수를 요소로 갖는 배열을 반환한다.

Array.of(7)					// return [7]
Array.of(['A', 'B', 'C'])	// reutn ['A', 'B', 'C']

· Array instance property

Array.prototype.length

배열의 원소 수

Array('A', 'B', 'C').length	// return 3

· Array instance method

Array.prototype.at()

인덱스를 받아 값을 반환한다.

Array('A', 'B', 'C').at(0)	// return A
Array('A', 'B', 'C').at(-1)	// return C ▶ 매개변수가 음수일 경우 가장 마지막 값을 반환한다.

Array.prototype.concat()

매개변수로 받은 값을 병합한 값을 반환한다.

Array('A', 'B', 'C').concat('D')			// return ['A', 'B', 'C', 'D']
Array('A', 'B', 'C').concat(['D', 'E']])	// return ['A', 'B', 'C', 'D', 'E']

Array.prototype.copyWithin()

배열 내 값을 복사하여 특정 위치에 붙여넣은 값을 반환한다.

Array().copyWithin(target, start, end)
// target: 붙여넣을 위치의 인덱스 
// start: 복사를 시작할 위치의 인덱스 Default 0
// end: 복사를 끝낼 위치의 인덱스 Default Array의 length

Array(1, 2, 3, 4, 5).copyWithin(-1)			
// return [1, 2, 3, 4, 1] → Index 0~length 복사한 후 -1 index(배열의 마지막 index)에 붙여넣기
Array(1, 2, 3, 4, 5).copyWithin(0, 2, 3)	
// return [3, 2, 3, 4, 5] → Index 2~3(즉, 2) 복사한 후 0 index에 붙여넣기.

Array.prototype.entries()

인덱스와 값을 각각 키와 값의 쌍으로 가지는 Iterator 객체를 반환한다. 주로 반복문과 함께 사용된다.

for (let [index, element] of Array('A', 'B').entries())
  console.log(index, element);

// 0 'A'
// 1 'B'
for (let e of Array('A', 'B').entries())
  console.log(e);

// [0, 'A']
// [1, 'B']

Array.prototype.keys()

인덱스를 갖는 Iterator 배열을 반환한다. 주로 반복문과 함께 사용된다.

for(let index of Array('A', 'B').keys())
    console.log(index)

// 0
// 1

Array.prototype.values()

값을 갖는 Iterator 배열을 반환한다. 주로 반복문과 함께 사용된다.

for(let element of Array('A', 'B').values())
    console.log(element)

// 'A'
// 'B'

⭐ Array.prototype.forEach()

각 요소 마다 지정된 함수를 실행한다.

Array('A','B','C').forEach(e => console.log(e))		   // console 출력 'A', 'B', 'C'
Array('A','B','C').forEach((e, i) => console.log(e, i))	// console 출력 'A' 0, 'B' 1, 'C' 2 

(e, i) => e = e + 1 과 같이 원본을 변경하는 수식은 적용되지 않는다.

Array.prototype.every()

배열 내 모든 요소가 판별식을 만족하는지 반환한다.

Array(1, 2, 3).every(value => value < 10)	// true ▶ 조건식 "value < 10"

let f_test = value => value < 10
Array(1, 2, 3).every(f_test)				// true ▶ 위와 같은 조건식, 형태만 다름

Array.prototype.some()

배열 내 일부 요소가 조건식을 만족하는지 반환한다.

Array(1, 2, 3).some(value => value == 1)	// true
Array(1, 2, 3).some(value => value == 4)	// false

Array.prototype.fill()

값 하나로 배열을 채워 반환한다.

Array().fill(value, start, end)
// value: 붙여넣을 값
// start: 붙여넣기를 시작할 위치의 인덱스 Default 0
// end: 붙여넣기를 끝낼 위치의 인덱스 Default Array의 length

Array(1, 2, 3).fill(6)		// return [6, 6, 6]
Array(1, 2, 3).fill(6, 1)	// return [1, 6, 6]

⭐ Array.prototype.filter()

조건에 맞는 값들을 배열로 반환한다.

Array(1, 3, 5, 7).filter(element => element > 3)	// return [5, 7]

// reserve가 array 일 때 아래와 같은 식으로 B를 제거 할 수 있다.
reserve = reserve.filter(r => r !== b)

Array.prototype.find()

조건에 맞는 첫번째 값을 반환한다.

Array(1, 3, 5, 7).find(element => element > 3)	// return 5

Array.prototype.findIndex()

조건에 맞는 첫번째 값의 인덱스를 반환한다.

Array(1, 3, 5, 7).findIndex(element => element > 3)	// return 2

Array.prototype.flat()

내부 배열을 포함하는 새 배열을 반환한다.

arr.flat(dept)
// dept : 평탄화 할 배열의 깊이 default : 1

let arr = ['A', 'B', ['C', 'D']]
arr.flat() 							// return ['A', 'B', 'C', 'D']

let arr = ['A', 'B', [[['C', 'D']]]]
arr.flat(2)							// return ['A', 'B', ['C', 'D']]

⭐ Array.prototype.Map()

콜백 함수를 각 요소에 적용한 배열을 반환한다.

Array(1, 2, 3).map(e => e + 1)						// return [2, 3, 4]
Array([0, 1], [0, 2], [0, 3]).map(([a,b]) => [b,a])	// return [[1, 0], [2, 0], [3, 0]]

Array.prototype.flatMap()

콜백 함수를 각 요소에 적용한 후 결과를 한 수준 평탄화한 배열을 반환한다.

// flatMap((value, index, array) => { /* … */ } )
// value : 현재 실행중인 value
// index : 현재 실행중인 index

let str = ["Victory belongs", "to the", "most persevering"];
str.map((e) => e.split(" "))	  // return [["Vivtory", "belongs"], ["to", "the"], ["most", "persevering"]]
str.flatMap((e) => e.split(" ")); // return ['Victory', 'belongs', 'to', 'the', 'most', 'persevering']

Array.prototype.includes()

매개변수가 배열 내 포함되어있는지 반환한다.

Array('A', 'B', 'C').includes('A')	// return true

Array.prototype.indexOf()

매개변수로 값을 받아 검색 후 처음 검색 결과의 Index를 반환한다. 검색결과가 없을 경우 -1을 반환한다.

// indexOf(searchKey, start)
// searchKey : 검색할 값, start : 검색을 시작할 index
let arr = ['A', 'B', 'C', 'D', 'E']

arr.indexOf('A')	// return 0
arr.indexOf('A', 1)	// return -1 'A'는 0번에 있으나, 1번부터 검색하기때문에 검색결과 없음.

Array.prototype.join()

배열을 병합하여 문자열(string)로 반환한다.

let arr = ['010','1234','5678']
arr.join()		// return '010,1234,5678'
arr.join('-')	// return '010-1234-5678'

Array.prototype.pop()

배열의 마지막 값을 삭제한 후 삭제한 값을 반환한다.

let arr = ['A', 'B', 'C']
arr.pop()						// return 'C'
console.log(arr)				// ['A', 'B']

Array.prototype.shift()

배열의 첫 번째 값을 삭제한 후 삭제한 값을 반환한다.

let arr = ['A', 'B', 'C']
arr.shift()							// return A
console.log(arr)					// ['B', 'C']

Array.prototype.push()

배열 마지막에 값을 추가한 후 요소 갯수를 반환한다.

let arr = ['A', 'B', 'C']
arr.push('D')			// return 4
console.lof(arr)		// ['A', 'B', 'C', 'D']

Array.prototype.reduce()

이전 콜백 함수의 return값을 이용하여 각 요소에 콜백 함수를 적용시킨 값을 반환한다.

// reduce((previousValue, currentValue, currentIndex, array) => { /* … */ }, initialValue)
// previousValue 2회차부터 콜백함수의 결과값을 저장할 변수명
// currentValue	 현재 요소의 값, currentIndex 현재 요소의 Index
// initialValue  1회차 콜백함수 호출 시 'previousValue'로 사용될 초기화값

let arr = [1, 2, 3];

let initialValue = 5;
array1.reduce((previousValue, currentValue) => previousValue - currentValue, initialValue));	// return -6 ▶ 1-2-3
array1.reduce((previousValue, currentValue) => previousValue - currentValue, 10));				// return  4 ▶ 10-1-2-3

Array.prototype.reduceRight()

Array.prototype.reduce() method를 오른쪽부터 진행한다.

⭐ Array.prototype.slice

매개변수로 주어진 Index의 값을 반환한다.

let arr = ['A', 'B', 'C']
arr.slice(1)	// return ['B', 'C'] index 1 ~ 마지막까지 반환
arr.slice(1, 2)	// return ['B']		 index 1 ~ 2의 전까지 반환. 단, 2는 반환하지 않는다.

Array.prototype.reverse()

배열 순서를 반전한다.

Array(1, 2, 3).reverse()	// return [3, 2, 1]

⭐ Array.prototype.sort()

배열을 UTF-16 코드 단위값으로 정렬한다.

Array(1, 2, 10).sort()			// return [1, 10, 2]
Array('Z', 'a', 1).sort()		// return [1, Z, a]

함수를 통해 정렬 방식을 지정할 수 있다.

// sort((a, b) => { /* … */ } ) ▶ 비교를 위한 배열 내 요소 a, b 

※ 빈 slot이 있다면 가장 마지막으로 정렬된다.

참조

  • https://developer.mozilla.org/ko/