배열과 고차함수

박상은·2021년 9월 7일
0

📀 JavaScript 📀

목록 보기
4/12

1. 배열메서드

1.1 Array.isArray(arg)

arg가 배열인지 아닌지

1.2 Array.from(arg)

유사배열객체 or 이터러블객체인 arg를 배열로 만들어서 반환함

1.3 Array.of(arg)

전달된 인수 arg를 갖는 배열을 반환

1.4 Array.prototype.indexOf(arg1, arg2)

arg1는 검색할것, arg2는 시작할 인덱스 위치
찾으면 찾은 인덱스 위치를 반환하고, 아니면 -1를 반환함

1.5 Array.prototype.includes(arg)

배열에 arg의 포함여부에 따른 T/F반환

1.6 Array.prototype.concat(arg)

arg를 배열의 맨뒤에 추가한 새로운 배열을 반환함

1.7 Array.prototype.join(arg)

arg를 구분자로 하는 문자열로 반환함 ( 생략시 , )

1.8 Array.prototype.push(arg) [원본배열 변경]

arg를 배열의 맨뒤에 추가

1.9 Array.prototype.pop() [원본배열 변경]

배열의 맨뒤요소 제거후 반환

1.10 Array.prototype.reverse() [원본배열 변경]

배열의 전체 요소의 순서를 반대로 변경

1.11 Array.prototype.shift() [원본배열 변경]

배열의 첫번째 요소 제거후 반환

1.12 Array.prototype.unshift(arg) [원본배열 변경]

배열의 첫번째에 arg추가

1.13 Array.prototype.slice(arg1, arg2)

배열의 arg1부터 arg2까지 복사해서 반환 ( arg2가 없을경우 끝까지 )
1차적으로는 얕은복사를 하지만 내부에 있는것들은 깊은복사를 함

1.14 Array.prototype.splice(arg1, arg2, arg3) [원본배열 변경]

  1. arg1: 시작위치
  2. arg2: 제거할 요소의 개수
  3. arg3: 추가할 요소들

제거한 요소들을 반환함

2. 고차함수

함수를 인수로 받거나, 함수를 반환하는 함수를 의미함
함수는 일급객체이므로 인수로 받거나 반환값으로 사용할 수 있음

2.1 Array.prototype.sort(func) [원본배열변경]

배열의 정렬기준을 func라는 함수를 통해서 받아서 정렬함

const arr = [3, 1, 2, 5, 4];

// 반환값이 양수면 오름차순
arr.sort((a, b) => a - b);
console.log(arr);	// 1, 2, 3, 4, 5
// 반환값이 음수면 내림차순
arr.sort((a, b) => b - a);
console.log(arr);	// 5, 4, 3, 2, 1

2.2 Array.prototype.forEach(func, thisArg)

배열의 모든 요소에 전달함수인 콜백함수를 실행함
반환값은 undefined
두번째 인자로 this를 지정할 수 있음

const arr = [1, 2, 3];
const arr2  = [];

arr.forEach((v, i, self) => arr2.push(v * 2));
console.log(arr2);	// 2, 4, 6

2.3 Array.prototype.map(func, thisArg)

배열의 모든 요소에 전달함수인 콜백함수를 실행함
실행한 반환값들을 모아서 새로운 배열을 만들어서 반환함
두번째 인자로 this를 지정할 수 있음

const arr = [1, 2, 3];

const arr2 = arr.map((v, i, self) => v * 2);

console.log(arr2);	// 2, 4, 6

2.4 Array.prototype.filter(func, thisArg)

배열의 모든 요소에 전달함수인 콜백함수를 실행함
실행한 반환값들중에서 true인 값만 모아서 새로운 배열을 반환함
두번째 인자로 this를 지정할 수 있음

const arr = [1, 2, 3, 4, 5];

const arr2 = arr.filter((v, i, self) => v % 2 === 0);

console.log(arr2);	// 2, 4

2.5 Array.prototype.reduce(func, initValue)

배열의 모든 요소에 전달함수인 콜백함수를 실행함
이전에 반환한 값이 prev에 들어옴
현재 요소의 값이 current에 들어옴
배열의 모든 요소를 순회한뒤에 prev값을 반환함
initValue는 맨 처음 prev값을 지정할 수 있고, 없을 경우 첫번째요소값으로 지정됨

const arr = [1, 2, 3, 4, 5];

const sum = arr.reduce((prev, current, i, self) => prev + current);

console.log(sum);	// 15

2.6 Array.prototype.some(func, this)

배열의 모든 요소에 전달함수인 콜백함수를 실행함
모든 요소 순회중에 하나라도 true가 나오면 즉시 멈추고 true반환, 아니면 전부 순회하고 false반환
두번째 인자로 this를 지정할 수 있음

const arr = [1, 2, 3, 4, 5];

const result1 = arr.some((v, i, self) =>  v >= 3);	// 1, 2, 3까지만 순회 후 true반환
const result2 = arr.some((v, i, self) =>  v >= 10);	// 전체 순회후 false반환

console.log(result1);	// true
console.log(result2);	// false

2.7 Array.prototype.every(func, this)

배열의 모든 요소에 전달함수인 콜백함수를 실행함
모든 요소 순회중에 하나라도 false가 나오면 즉시 멈추고 true반환, 아니면 전부 순회하고 true반환
두번째 인자로 this를 지정할 수 있음

const arr = [1, 2, 3, 4, 5];

const result1 = arr.every((v, i, self) =>  v <= 3);	// 1, 2, 3까지만 순회 후 false반환
const result2 = arr.every((v, i, self) =>  v >= 0);	// 전체 순회후 true반환

console.log(result1);	// false
console.log(result2);	// true

2.8 Array.prototype.find(func, this)

배열의 모든 요소에 전달함수인 콜백함수를 실행함
반환값이 첫 번째로 참인 요소를 반환하고 반복중지
두번째 인자로 this를 지정할 수 있음

const person = [
  { _id: 1, name: "a" },
  { _id: 2, name: "b" },
  { _id: 3, name: "b" },
];

const target = person.find((v, i, self) =>  v.name === "b");

console.log(target);	// { _id: 2, name: "b" }

2.9 Array.prototype.findIndex(func, this)

배열의 모든 요소에 전달함수인 콜백함수를 실행함
반환값이 첫 번째로 참인 요소의 인덱스를 반환하고 반복중지
두번째 인자로 this를 지정할 수 있음

const person = [
  { _id: 1, name: "a" },
  { _id: 2, name: "b" },
  { _id: 3, name: "b" },
];

const targetIndex = person.find((v, i, self) =>  v.name === "b");

console.log(targetIndex);	// 2

마무리

참고한 사이트

배열
고차함수와배열

0개의 댓글