코딩테스트를 풀며 다른 사람의 풀이를 보았을 때 처음 보는 함수와 메서드를 많이 배웠고 이를 정리하기위해 이 블로그를 쓴다
그럼 여기서 함수와 메서드의 차이는 무엇일까?
함수(function): 독립적인 코드 블록
- functionName()과 같이 이름으로 직접 호출
메서드(method): 특정 객체에 속한 함수, 호출하는 객체가 있음
- object.method()와 같이 점표기법을 사용, 객체를 통해 호출
-> 모든 메서드는 함수이지만, 모든 함수는 메서드가 아님
Array인스턴스의 속성으로 배열, 문자열의 요소 수나 길이를 나타냄
for(let i = 0; i < 100; ++i){
if(n[i] === undefined)
break;
몰랐을 때는 위 코드와 같이 if문을 적어 문제를 해결했지만
이러한 방식은 배열의 길이를 모르는 상태에서 100보다 크기보다 작다는 가정에 따라 작성하기 때문에 가정을 벗어난 경우에서는 사용하기 힘들고 쓸데없는 코드가 많아 계산 시간이 걸린다
for(let i = 0; i < n.length; ++i)
코드를 줄이고 계산 시간도 줄일 수 있다
배열을 정렬하기 위해 사용하는 함수
오름차순: 배열.sort((a,b) => a-b);
내림차순: 배열.sort((a,b) => b-a);
화살표 함수를 이용하여 작성되었다
a, b에 배열 내에 두요소를 전달해서 a-b가 양수면 b가 앞으로 이동해서 작은 수가 앞으로 오게 된다
하지만 함수 내에 파라미터가 입력되지 않으면 문자열의 유니코드대로 정렬한다 (오름차순 정렬)
for(let i = 0; i < sides.length; i++)
for(let j = 0; j < sides.length; j++)
if(sides[i] < sides[j]){
answer = sides[i];
sides[i] = sides[j];
sides[j] = answer;
}
const [long, a, b] = sides.sort((a,b) => a-b);
배열의 끝에 명시된 요소를 추가하고 배열의 새로운 길이를 반환하는 메소드
배열에 요소를 추가할 때에는 push()메소드를 사용함, 이 메서드를 몰랐다면 이러한 방식으로 문제를 풀기 어려웠을 듯하다
for(let i = num1; i < num2+1; i++){
answer.push(numbers[i]);
}