우테코 1주차 후 문법 정리

UihyunLee·2022년 11월 29일
0

우아한 테크코스

목록 보기
2/2

우테코 1주차가 끝난지 꽤나 되었는데 바로 기록을 하려 했지만, 생각보다 바로바로 글을 쓰는 것이 쉽지 않다는 것을 깨달았다 🥲 더 밀리지 않고 끝난 지금이라도 기록을 해보려 한다.

join

join 메서드는 인자를 기준삼아서 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.

const first = ['a1','b1','c1'];
//['a1','b1','c1'];
const second = first.join(',');
//a1,b1,c1

split
split 메서드는 인자를 기준 삼아서 문자열의 요소를 배열로 만듭니다.

const first = 'a1,b1,c1';
//a1,b1,c1
const second = first.split(',');
//['a1','b1','c1']

reduce
reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.

인자는 총 4개이며 누산기, currentValue, index, 원본의 순서를 가집니다. 형식은 아래와 같습니다.
Array.prototype으로 배열을 기준으로 사용이 가능합니다.

const arr = ['a','b','c'];
const second = arr.reduce((acc,value,idx)=>{
	return acc+value;
},'');
//'abc'

push
push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다.
push() 메서드는 원본 배열을 변경합니다.
Array.prototype으로 배열을 기준으로 사용이 가능합니다.

const first = ['a'];
first.push('b');
//['a','b']

concat
concat() 메서드는 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환합니다.
push와 비슷하지만 기존 배열을 직접 변경하는 push와 달리 concat은 새로운 배열을 변경 후 반환합니다.
Array.prototype으로 배열을 기준으로 사용이 가능합니다.

const first = ['a'];
const second = first.concat('b');
//first -> ['a']
//second -> ['a','b']

unshift
unshift() 메서드는 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환합니다.
unshift() 메서드는 원본 배열을 변경합니다.
Array.prototype으로 배열을 기준으로 사용이 가능합니다.

const first = ['a','b'];
first.unshift('c');
//['c','a','b']

forEach
forEach() 메서드는 주어진 함수를 배열 요소 각각에 대해 실행합니다.
forEach()는 배열을 변형하지 않습니다. 그러나 callback이 변형할 수는 있습니다.
Array.prototype으로 배열을 기준으로 사용이 가능합니다.

const arr = ['a','b','c'];
arr.forEach((item,index)=>{
	console.log(item,index);
});
//'a',0
//'b',1
//'c',2

fill
fill() 메서드는 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채웁니다.
Array.prototype으로 배열을 기준으로 사용이 가능합니다.

const arr = new Array(10).fill('a');
//['a','a','a','a','a','a','a','a','a','a']

charCodeAt
charCodeAt() 메서드는 index에 해당하는 문자의 unicode 값을 리턴합니다.
String.prototype으로 문자열을 기준으로 사용이 가능합니다.

const sentence = 'ABC';
console.log(sentence.charCodeAt(0));
//65

map
map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.
Array.prototype으로 배열을 기준으로 사용이 가능합니다.

const arr = [1,2,3];
const newArr = arr.map((v)=>{
	return v+1;
});
//[2,3,4]

hashMap
Map 객체는 객체처럼 사용이 가능하다.
key,value를 사용하며,
get,set을 이용하여 탐색과 삽입을 한다.
코드를 통해 알아보자

const newMap = new Map();
newMap.set('first', 2);
newMap.set(0,'str');
newMap.set({test:2},10);
newMap.set('first',10);

Array.from
Array.from() 메서드는 유사 배열 객체(array-like object)나 반복 가능한 객체(iterable object)를 얕게 복사해 새로운Array 객체를 만듭니다.
공식문서에 나와있는 형식이다. 나는 주로 set을 Array로 변환할 때 사용한다. set을 통해 중복값을 검사 후 Array의 내장함수를 사용하여 클린한 코드 구현 및 가독성을 올리기 위함이다.

	const set = new Set([1,2,3]);
	const newArr = Array.from(set);
	//[1,2,3]

위의 예시는 정말 단순한 예시이지만 어떠한 value를 입력받으며 중복검사를 해줘야할 때 set을 사용 => 중복검사를 마무리한 set을 Array.from을 이용하여 배열화 하여 주로 사용했다.


sort
sort()메서드는 배열을 정렬하기 위한 메서드이다.
형식은 arr.sort([compareFunction]);이다
만약 sort 내부의 파라미터를 비워둔다면 오름차순으로 정렬이 된다.
(유니코드순)

const firstArr = [1,3,2];
const secondArr = ['b','a','c'];
firstArr.sort();
//[1,2,3]
secondArr.sort();
//['a','b','c']

위의 경우는 1,3,2처럼 한자리의 숫자이기 때문에 올바르게 정렬이 되었지만 만약 두자리의 숫자 5,50,6 을 파라미터 없이 정렬한다면 ?
=> [5,50,6] 과 같을 것이다.

따라서 compareFunction을 이용하여 정렬해야한다.
규칙은 간단하다.
compareFunction(first,second)의 return 값에 따라 정렬을 하면 된다.
return 값이 0미만 인 경우는 first가 second보다 낮은 순 정렬
return 값이 0인 경우는 first와 second와 동일 순 정렬
return 값이 0초과 인 경우는 second가 first보다 낮은 순 정렬
아래의 예시로 비교해보겠습니다.

const firstArr = [1,3,5,50,60];
firstArr.sort(function(first,second){
    return first-second;
});
//[1,3,5,50,60]
const secondArr = [1,3,5,50,61];
secondArr.sort(function(first,second){
	return second-first;
});
//[61,50,5,3,1]

다음은 문자열 정렬을 확인해보겠습니다.

const strArr = ['bro', 'abcd', 'cro'];
strArr.sort(function(first,second){
	if(first<second)return -1;
  	else if(first>second)return 1;
  	return 0;
});
//['abcd', 'bro', 'cro']

위와 같이 음수와 양수, 0을 이용하여 오름차순 정렬을 할 수 있습니다.
내림차순 정렬은 부등호를 반대로 하면 됩니다.


profile
공부 기록

0개의 댓글