try...catch
try...catch 문은 실행할 코드블럭을 표시하고 예외(exception)가 발생(throw)할 경우의 응답을 지정합니다.
try {
nonExistentFunction(); //실행될 부분
} catch (error) {
console.error(error); //에러 발생시 실행될 부분
}
try...catch - JavaScript | MDN
try...catch 문은 실행할 코드블럭을 표시하고 예외(exception)가 발생(throw)할 경우의 응답을 지정합니다.
developer.mozilla.org
프로그래머스 입문 : 배열 원소의 길이
문제 :
문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.
풀이:
1. 배열 안에 요소로 하나씩 접근하기 위해 for문 사용
2. 요소의 길이를 asnwer에 push
function solution(strlist) {
var answer = [];
for (i=0; i<strlist.length; i++) {
answer.push(strlist[i].length)
}
return answer;
}
map을 활용한 풀이 :
map은 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환함
함수의 결과가 배열로 반환이 되어야 하므로 map 활용 가능!
for문 사용할 떄보다 간결하게 작성할 수 있음
function solution(strlist) {
var answer = [];
answer = strlist.map((a)=>a.length)
return answer;
}
Array.prototype.map()
arr.map(callback(currentValue[, index[, array]])[, thisArg])
- callback 새로운 배열 요소를 생성하는 함수 (위의 코드에서는 화살표 함수 부분)
- currentValue 처리할 현재 요소
- index 처리할 현재 요소의 인덱스
- array map()을 호출한 배열
- thisArg callback을 실행할 때 this로 사용되는 값
map은 callback 함수를 각각의 요소에 대해 한번씩 순서대로 불러 그 함수의 반환값으로 새로운 배열을 만든다.
즉, 위의 문제 풀이에서는 strlist의 요소를 순서대로 불러서 (a) => a.length라는 함수의 반환값으로 새로운 배열을 만든다고 볼 수 있다.
그렇기 때문에 for문과 같은 결과를 얻을 수 있었다!
Array.prototype.map() - JavaScript | MDN
map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.
developer.mozilla.org
Array.prototype.filter()
filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다
예시 :
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// Expected output: Array ["exuberant", "destruction", "present"]
배열에서 단어의 길이가 6보다 큰 것만 모아 새로운 배열을 반환!!
Array.prototype.filter() - JavaScript | MDN
filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다.
developer.mozilla.org