목록JavaScript/연습문제 (12)
정골라코딩
문제 설명) 배열의 모든 요소가 square number(정수의 제곱)인지 확인하는 boolean 함수를 작성하세요. Square number 예시: 9는 3 × 3으로 쓸 수 있기 때문에 true를 반환합니다. isSquare([1, 4, 9, 81, 36, 1024]) output: true isSquare([0, 4, -9]); output: false isSquare([]); output: undefined 1. Number.isInteger()를 사용해서 배열의 요소가 정수인지 확인하는 코드를 작성하세요. 2. Math.sqrt()를 사용해서 제곱근이 정수가 아니라면 undefined 를 반환하는 코드를 작성하세요. 빈 배열일 경우에는 undefined를 반환합니다. 배열의 요소 중에 squar..
문제 설명) 아래의 조건에 맞는 함수를 구현해 보세요. [조건] 함수명: isTriangle 입력: 숫자 3개 출력(반환): boolean (3개 숫자로 삼각형을 만들 수 있다면 true, 없다면 false) [예시 1] 입력: 7, 7, 15 출력: false [예시 2] 입력: 3, 4, 6 출력: true Tip 삼각형 여부를 확인하는 방법은, 어느 한 변의 길이가 나머지 두 변의 길이를 합한 것보다 길거나 같을 수 없다는 점을 이용하는 것입니다. function isTriangle(a,b,c){ if(a+b
문제 설명) 1. input String을 뒤집어서 반환하는 getReverse 함수를 return 문 한 줄로 작정하세요. split(), reverse()와 join()메소드를 사용하세요. input: "Happy Thanksgiving!" output: "!gnivigsknahT yppaH" 2. 입력값의 3자리 단위씩 컴마로 묶어서 반환하는 groupByCommas 함수를 return 문 한 줄로 작정하세요. toLocaleString() 메소드를 사용하세요. input: "2443243" output: "2,443,243" 3. 문자열의 중간에 있는 문자열을 반환하는 getMiddle 함수를 return 문 한 줄로 작성하세요. 이 때 문자열의 길이가 짝수라면 가운데 두글자를 반환하고 홀수라면 ..
Rest Operator 란? Rest Operator(나머지 매개변수)는 함수의 나머지 인자를 가리키며 여러 개의 매개변수를 하나의 배열로 묶어서 전달받을 수 있습니다. 문제 설명) 나머지 매개변수 사용하기 mul() 함수의 인자 내에 rest operator를 이용해 모든 매개 변수의 곱을 구하는 함수를 작성하세요. 상단에 작성된 sumArray 함수의 구조를 참고하세요. 함수의 마지막 매개변수 앞에 “…”를 붙이면 모든 후속 매개변수를 배열에 담아 저장합니다. 이 때 마지막 매개변수만 나머지 매개변수로 설정할 수 있습니다. mul(2, 5, 6) 은 60을 반환하고 mul(2, 4, 6, 8)은 384를 반환합니다. 나머지 매개변수를 일반 매개변수와 함께 사용하기 나머지 매개변수를 이용해 multi..
문제 설명) 1. map 함수를 구현하세요. map 함수는 배열의 각 원소를 변환한 새로운 배열을 반환합니다. func - (현재 아이템) => 변환된 아이템 형식입니다. ex) item => item * 2 함수는 배열의 모든 원소에 *2를 적용합니다. array의 내장 map 함수를 쓰지 않고, for문을 이용해 구현해보세요. 2. filter 함수를 구현하세요. filter 함수는 배열의 각 원소 중 조건에 해당하는 원소만 들어있는 새로운 배열을 반환합니다. func - (현재 아이템) => 조건(true or false) 형식입니다. ex) item => item > 5 함수는 5보다 큰 값들만을 반환합니다. array의 내장 filter 함수를 쓰지 않고 구현해보세요. 3. reduce 함수를 ..
this란? this의 값은 함수를 호출한 방법과 환경에 따라 동적으로 세팅됩니다. 아래 예제에 this에 할당된 변수가 무엇을 의미하는지 살펴봅시다. var num = 0; function add() { this.num = 1; num++; console.log(num); // 2 console.log(window.num); // 2 console.log(num === window.num); // true } add(); 함수 선언문 안에서 this는 global 객체를 의미합니다. 함수 선언식이 내부 함수에서 선언될 경우 global이나 window 처럼 전역객체에 binding이 됩니다. 이러한 이벤트 binding 은 이 순서로 이루어집니다. 이벤트를 받아 줄 요소를 선택합니다. 선택한 요소에 어..
문제 설명) 기존 자바스크립트 문법은 클래스 표현식이 없었지만 ES6는 클래스를 정의하여 사용할 수 있습니다. class 키워드로 클래스를 정의할 수 있습니다. 클래스 내에 생성자(constructor())도 항상 포함되어 있어야 합니다. 클래스에 대한 자세한 내용은 링크에서 확인해보세요! class ClassName { constructor() { ... } } 아래는 자동차의 이름과 연도에 대한 정보를 담는 클래스입니다. class Car { constructor(name, year) { this.name = name; this.year = year; } } 클래스 객체 생성은 아래처럼 할 수 있습니다. let myCar1 = new Car("Ford", 2014); l et myCar2 = new ..
문제 설명) 덧셈 함수라고 많은 분들이 알고 계시는 reduce()는, 사실 매우 강력한 함수입니다. reduce()는 배열의 각 요소에 대해 주어진 함수를 실행한 후, 하나의 결과값을 반환합니다. 앞에서 학습한 map이 배열의 각 요소를 변형한다면, reduce는 배열 자체를 변형합니다. 예를 들어, 배열에 들어있는 숫자를 더하거나 평균을 구하는 것은 배열을 값 하나로 줄이는 동작입니다. 배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초기값); 위 문법에서 이전 값이 아니라 누적 값이라는 점을 유의해주셔야 합니다. 더보기 (참고) https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objec..
문제 설명) map() 함수는 각 배열 요소를 정의된 함수를 통해 변환한 결괏값들로 새 배열을 반환합니다. 쉽게 말해 배열을 가공하여 새 배열을 만드는 함수입니다. 예를 들어 아래와 같이 딕셔너리 배열이 주어졌습니다. 딕셔너리 요소인 firstname과 lastname을 합한 전체 이름을 출력하려고 합니다. var persons = [ {firstname : "Malcom", lastname: "Reynolds"}, {firstname : "Kaylee", lastname: "Frye"}, {firstname : "Jayne", lastname: "Cobb"} ]; 먼저 getFullName() 함수에 대해 살펴봅시다. 해당 함수는 item의 firstname과 lastname을 더해서 반환하고 있습니다..
문제 설명) 자바스크립트에서는 for문을 사용하여 반복문을 나타냈습니다. 하지만 forEach() 함수를 사용하면 반복문의 순번과 배열의 크기를 따로 변수에 저장하는 과정을 생략할 수 있습니다. forEach()는 키를 넣어주면 키값을 반환해주는 구조 분해 할당 방식입니다. 리스트의 요소가 키이고 forEach(함수)의 매개변수에 입력된 함수에 키를 넣고 값을 받는 것이라고 이해하면 됩니다. 이것을 이용하면 반복문 코드를 더 간결하게 바꿀 수 있습니다. 예시와 함께 살펴봅시다. 아래에 과일이 담긴 배열이 있습니다. var fruits = ["apple", "orange", "cherry"]; 배열의 각 요소를 반복문 forEach()를 이용해 접근할 수 있습니다. fruits.forEach(myFunct..