JS 공부 (배열과 관련한 메소드들)

KHW·2021년 1월 4일
0

배열과 관련한 메소드들

1) join 함수 : 배열을 String으로 바꾸는 것

['a','b','c'].join(' ') === 'a b c'
['12','34','ab','345'].join('@') === "12@34@ab@345"
필요한 구분을 join을 통해 할 수 있다.

2) split 함수 : String을 여러 배열의 문자열로 잘게 나누어 준다.

'abc'.split('') === ["a", "b", "c"]

split의 2번째 인자에 숫자를 넣으면 해당 숫자의 갯수만큼만 배열을 반환해낸다.

'abc'.split('',2) === ["a", "b"]

3) reverse 함수 : 배열의 값을 거꾸로한다. (배열 자체와 리턴 값 모두 변경)

let a = ['a','b','c']		
a.reverse() 			//["c", "b", "a"]
a				//["c", "b", "a"]

4) splice : 어디서부터 몇개를 지우냐 (기존 배열에 영향을 준다)

5) slice : 새로운 배열을 만드는 것 ( 기존 배열에 영향 X)

4) 5) 내용은 이곳을 참조

6) find : 콜백 함수를 받는다.(특정 조건에 부합하는 배열의 첫번째 값만을 리턴한다.)

['a','b','c','c'].find(element=>element=='c') c에 부합하는 값이 있다면 리턴한다. (2번째위치인 'c'만 리턴)

7) filter : 콜백 함수를 받는다.(특정 조건에 부합하는 배열의 모든 값을 배열 형태로 리턴한다.)

['a','b','c','c'].filter(element=>element=='c')	//["c", "c"]

부합하는 전부 리턴한다.

8) map : 배열안에 들어있는 요소 한가지 한가지를 다른 것으로 변경해주는 것

let a = [1,2,3,4];
a.map(x=>x*2);		//[2, 4, 6, 8]  
a		//[1,2,3,4]

9) some : 배열안의 어떤 요소라도 주어진 판별 함수를 통과하는지 테스트 ( 하나라도 만족하면 true 리턴)

[1,2,3,4].some(x=>4)	//true
[1,2,3,4].some(x=>5)	//false

해당 4라는 값이 배열에 존재하므로 하나라도 만족하여 true
해당 5라는 값이 배열에 존재하지 않으므로 하나도 만족하지 않아 false

10) every : 배열안의 모든 요소가 주어진 판별함수를 통과하는지 테스트(하나라도 만족하지 않으면 false리턴)

[1,2,3,4].every(x=>Number.isInteger(x)==true)		//true
[1,2,3,'a'].every(x=>Number.isInteger(x)==true)		//false

모두 정수인지 확인하는 방법에서도 사용할 수 있다.

11) reduce : callback과 initial value가 중요

students.reduce((prev,curr)=>prev+curr,0)

1) 누산기 acc
2) 현재값 cur
3) 현재 인덱스 idx
4) 원본배열 src

[10,20,40,80,200].reduce((prev,curr)=>prev+curr,0)
prevcurr
1010
21020
33040
47080
5150200
6150350 (마지막 return의 결과)

students.reduce((prev,curr)=>prev+curr,0)

1) 누산기 acc
2) 현재값 cur
3) 현재 인덱스 idx
4) 원본배열 src

reduce prev 미리 설정 안하고도 가능하다.

[10,20,40,80,200].reduce((prev,curr)=>prev+curr)
prevcurr
11020
23040
37080
4150200
5150350 (마지막 return의 결과)

12) Sort : Sort((a,b) => a-b) a-b가 음수라면 첫번째가 뒤에보다 작다고 간주되어 오름차순 정렬

13) charAt

String에서의 특정 위치의 알파벳을 검색
=> 맨 마지막 배열의 위치를 사용가능

ex)

let a = "str";
const a_length = a.length;
console.log(
  a.charAt(a.length - 1) === a[a.length - 1],
  a[a.length - 1] === a.charAt(a_length - 1)
);

둘다 true

  • 특정 반복
let a = "abc";

// 특정 10자리까지 마지막 자리를 반복하고 싶을때

const len = a.length;
a = len > 10 ? a : a + a.charAt(len - 1).repeat(10 - len);
console.log(a);

14) concat

문자든 배열이든 합친다.

[1,2,3].concat([4,5,6]);	//배열 + 배열 => 배열
[1,2,3].concat('abc');		//배열 + 문자 => 문자
'edf'.concat('abc');		//문자 + 문자 => 문자
profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글