[Array] 함수 모음: push, pop, unshift, shift, indexOf, includes, splice, slice, concat, map, sort, reverse, split, join, reduce, reduceRight

이주희·2022년 3월 20일
0

JS Method

목록 보기
2/17

push/pop/unshift/shift : 원소 추가/제거

  1. 뒤에 추가
    배열.push("원소1", "원소2")
    * 재할당 할 필요 없음! 재할당 하면 버그가 생길 수 있으니 ㄴㄴ
  2. 앞에 추가
    배열.unshift("원소1","원소2")

--> 변수에는 새로운 배열 반환

  1. 마지막 원소 제거
    let one = 배열.pop()
  2. 첫번째 원소 제거
    let one = 배열.shift()

--> 제거된 원소를 변수로 반환


indexOf : 인덱스 값 반환

  • arr.indexOf(원소)
  • 없는 원소를 넣으면 -1 반환

includes : 존재 여부

  • arr.includes(원소)
  • true/false 반환

splice : 원소 삭제/교체/추가

원하는 위치(index)의 데이터를 추가하거나 제거할 수 있다.
원본이 저장된다.

  • arr.splice(원소가공을 시작할 인덱스 위치, 제거할 원소갯수, 추가해줄 원소)
  • 추가해줄 원소 여러개 가능
  • 제거된 원소를 배열로 반환
const arr = [1,2,3]
arr.splice(1,1,0,-1,-2) // 3번째 인자부터는 추가해줄 원소
/* 결과 */
[ 1, 0, -1, -2, 3 ]

slice : 원소 자르기

  • arr.slice(자르기 시작할 인덱스, 자르기를 종료할 인덱스)
  • 종료할 인덱스는 미포함
  • 잘라온 원소를 배열로 반환

concat : 배열 합치기

  • arr1.concat(arr2,arr3)
  • arr.concat(추가할 원소)
  • 원소, 배열 섞어서 추가 가능



배열 변형

map : 반복문

  • 배열의 모든 원소에 대해 함수를 호출한 결과를 모아 새로운 배열 반환
    (기존 객체 수정 X)
  • 반복문으로 자주 사용
  • 메서드 안의 함수의 파라미터(매개변수)는 num의 모든 원소들이 한번씩 들어감
arr.map((arr_item)=>{
		// 모든 배열의 원소에게 반복실행할 코드	
	})

예시

let num = [1,2,3,4,5]
let newNum = num.map(num_item => num_item*3)
//결과
newNum = [3,6,9,12,15]

sort : 정렬

  • 정렬 후 해당 배열 반환
  • 기본적인 정렬 순서: 문자열의 유니코드
    (숫자는 문자열로 변환: "80" < "9")
  • compareFunction(a, b)이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬
arr.sort(()=>{
		//비교기준 함수
		//없을시엔 기본적인 정렬에 따라 정렬됩니다.
	})

/* 숫자열에서 비교기준 함수 */
//오름차순
arr.sort((a,b)=>{
		return a-b
	}) 
//내림차순
arr.sort((a,b)=>{
		return b-a
	})

/* 문자열에서 비교기준 함수 */
//오름차순
arr.sort((a,b)=>{
		return a < b ? -1 : 1
	})
//내림차순
arr.sort((a,b)=>{
		return a > b ? -1 : 1
	})

reverse : 반전

  • 거꾸로
array.reverse()

split : 자르기

  • 문자열을 기준으로 잘라서 배열 반환
  • (선택)횟수 제한: 입력한 인덱스까지만 배열로 반환
str.split(구분자)
str.split(구분자,횟수 제한)

join : 연결

  • 모든 원소를 연결해 문자열로 반환
arr.join("")
arr.join(구분자)

[reduce]

arr.reduce(callback[, initialValue])

  • 누적값
  • 각 원소에 대해 callboack 함수 실행, 하나의 결과 값 반환
  • 총 원소의 합을 구할 때 주로 사용
  • 반환값 = 초기값 + 모든 원소의 연산 값
  • 초기값이 없으면 default 0번째 인덱스

callboack

  • 배열의 각 요소에 대해 실행할 함수

  • accumulator: 누산기는 콜백의 반환값을 누적한다.

  • currentValue: 처리할 현재 요소

  • 누적 계산의 결과 값을 반환한다.

arr.reduce((누적값, 현재값)=>{
		// 현재값+누적값을 리턴
	},초기값)

예시

/*배열의 모든 값 합산*/
//1. 
var total = [ 0, 1, 2, 3 ].reduce(
 ( acc, cur ) => acc + cur,
  0
);

> 결과 <
  6

//2. 
let arr = [1,2,3,4,5,6,7,8,9]
arr.reduce((acc,cur)=>{
		console.log(`누적값 : ${acc} , 현재값 : ${cur}`)
		return acc+cur
	},10)

> 결과 <
누적값 : 10 , 현재값 : 1
누적값 : 11 , 현재값 : 2
누적값 : 13 , 현재값 : 3
누적값 : 16 , 현재값 : 4
누적값 : 20 , 현재값 : 5
누적값 : 25 , 현재값 : 6
누적값 : 31 , 현재값 : 7
누적값 : 38 , 현재값 : 8
누적값 : 46 , 현재값 : 9
55

reduceRight : 누적값 뒤에서부터

  • reduce와 유사
  • 현재값이 배열의 끝에서부터 시작
arr.reduceRight((누적값,현재값)=>{
		// 현재값 + 누적값을 리턴
	})

예시

let arr = [1,2,3,4]
arr.reduceRight((acc, cur)=>{
		console.log(`누적값 : ${acc} , 현재값 : ${cur}`)
		return acc + cur
	} ,20)

> 결과 <
누적값 : 20 ,현재값 : 4
누적값 : 24 ,현재값 : 3
누적값 : 27 ,현재값 : 2
누적값 : 29 ,현재값 : 1
30
profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글