문제 개요첫 번째 인수로 리터럴 값들로 이루어진 배열을, 두 번째 인수로 문자열을 받는 JavaScript 함수를 작성해야 합니다.이 함수는 배열을 알파벳 순으로 정렬하되, 두 번째 인수로 전달된 문자열이 배열 안에 존재하는 경우에는 그 내용과 무관하게 해당 요소를 반드시 첫 번째 위치에 배치해야 합니다.예제 코드구현 코드는 다음과 같습니다. { return (b === text) - (a === text) || a.localeCompare(b); } arr.sort(sorter); }; sortKeep
문제 정의 다음과 같이 여러 개의 객체를 요소로 가지는 배열이 있다고 가정해 보겠습니다. const arr = [ { id: 23, name: Item 1, isActive: true }, { id: 25, name: Item 2, isActive: false }, { id: 26, name: Item 3, isActive: false }, { id: 30, name: Item 4, isActive: true }, { id:
JavaScript에서 중첩(nested) 배열을 다루다 보면, 여러 깊이에 흩어져 있는 요소들을 하나의 문자열로 합쳐야 하는 경우가 종종 있습니다. 이번 글에서는 중첩 배열의 모든 요소를 재귀적으로 탐색하여 세미콜론(;)으로 연결된 하나의 문자열을 만드는 방법을 알아보겠습니다.문제 상황다음과 같은 중첩 배열이 있다고 가정해 보겠습니다.const arr = [zero, [one, two, three, [four, [five, six, [seven]]]]];요구 사항은 중첩 배열을 인수로 받아, 배열 안의 모든 요소를 세미콜론(;)으
JavaScript로 데이터를 다루다 보면 객체와 배열이 여러 겹으로 중첩된 구조에서 특정 위치의 항목을 제거해야 하는 경우가 종종 있습니다. 이번 글에서는 인덱스 경로 배열을 기반으로 중첩 배열 안의 항목을 재귀적으로 찾아 삭제하는 방법을 알아보겠습니다.문제 상황다음과 같이 객체들이 중첩된 배열이 있다고 가정해 보겠습니다.const arr = [ { value: some value }, { &
문제 개요이번 글에서는 길이가 같은 두 개의 배열을 입력받아, 대응하는 요소들을 하나의 하위 배열로 묶어 새로운 배열을 반환하는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.즉, 두 배열에서 같은 인덱스에 위치한 요소들을 짝지어 출력 배열의 각 하위 배열로 구성하는 것이 핵심입니다.입력 예시두 배열이 다음과 같다고 가정해 보겠습니다 −const arr1 = [a, b, c];const arr2 = [1, 2, 3];기대 출력그렇다면 함수의 최종 출력은 다음과 같아야 합니다 −const output
JavaScript를 사용하다 보면 키 역할을 하는 문자열 배열과 값 역할을 하는 중첩 배열 두 개를 하나의 객체(JSON)로 합쳐야 하는 경우가 자주 있습니다. 예를 들어, 식사 이름 목록과 각 식사에 해당하는 재료 목록이 따로 있을 때, 이 둘을 하나의 객체로 깔끔하게 묶는 방법을 알아보겠습니다.다음과 같은 두 개의 배열이 있다고 가정해 보겠습니다.const meals = ["breakfast", "lunch", "dinner"]; const ingredients = [ &n
다음과 같이 객체 여러 개로 이루어진 배열이 있다고 가정해 보겠습니다.const arr = [{ 'title': 'Hey', 'foo': 2, 'bar': 3 }, { 'title': 'Sup', 'foo': 3, '
이 글에서는 자바스크립트(JavaScript)로 시퀀스 배열에서 값 그룹을 제거할 수 있는 모든 가능한 방법의 개수를 구하는 방법을 알아봅니다.문제 이해하기요구 사항은 다음과 같습니다. 원본 시퀀스에서 제거하려는 값 그룹을 뽑아낼 때, 원본 배열의 요소 순서는 반드시 유지되어야 하며(안정성 보장), 각 값은 원본에서 단 한 번씩만 제거해야 합니다. 이 조건을 만족하는 서로 다른 제거 방법이 총 몇 가지인지 반환하는 함수를 작성하는 것입니다.예제예를 들어 원본 시퀀스 배열이 다음과 같다고 가정해 보겠습니다.const arr = [1,
리터럴 값으로 이루어진 배열을 입력받아, 배열 안에서 가장 자주 등장하는 숫자가 무엇인지 그리고 그 숫자가 몇 번 반복되었는지 찾아내는 JavaScript 함수를 작성해야 합니다.접근 방식이 문제는 reduce() 메서드를 활용하면 깔끔하게 해결할 수 있습니다. 배열을 순회하면서 각 요소의 등장 횟수를 객체에 누적하고, 동시에 현재까지 가장 많이 등장한 값을 추적하는 방식입니다. 동점이 발생할 경우 여러 개의 최빈값을 배열로 반환하도록 처리했습니다.예제 코드실제 구현 코드는 다음과 같습니다. count[acc[0]]) {
문제 상황다음과 같이 MM-YYYY 형식의 날짜 문자열을 담고 있는 배열이 있다고 가정해 보겠습니다.const arr = [1-2016, 7-2015, 7-2016, 3-2016, 8-2016, 2-2016, 6-2016, 8-2015, 5-2016, 4-2016, 9-2015, 10-2015, 11-2015, 12-2015];이 배열을 입력받아 가장 오래된 날짜부터 최신 날짜 순서(오름차순)로 정렬하는 JavaScript 함수를 작성해야 합니다.정렬 원리날짜 문자열을 그대로 비교하면 문제가 발생합니다. 예를 들어 10-2015와
다음과 같이 두 개의 문자열 배열이 있다고 가정해 보겠습니다.const arr1 = [a, b, c];const arr2 = [d, e, f];이렇게 주어진 여러 개의 배열을 받아서, 각 배열에서 요소를 하나씩 선택해 만들 수 있는 모든 가능한 조합을 생성하는 JavaScript 함수를 작성해야 합니다.위 두 배열의 경우 결과는 다음과 같아야 합니다.const output = [ad, ae, af, bd, be, bf, cd, ce, cf];배열의 개수가 고정되어 있지 않기 때문에, 가변 인수(rest 파라미터)와 재귀 호출을 활용
리터럴 값으로 이루어진 여러 하위 배열을 담고 있는 다차원 배열이 주어졌을 때, 모든 하위 배열에 공통으로 등장하는 요소만 모아 교집합 배열을 반환하는 자바스크립트 함수를 작성해야 합니다. 문제 이해하기 예를 들어 다음과 같은 입력이 있다고 가정해 보겠습니다. const arr = [ ["garden", "canons", "philips", "universal"], ["universal", "ola", "ube
문제 상황 JavaScript 개발을 하다 보면 두 개 이상의 배열을 특정 키 값을 기준으로 하나로 합쳐야 하는 경우가 자주 발생합니다. 예를 들어 설문조사 데이터를 처리할 때, 한 배열에는 응답자 정보가, 다른 배열에는 각 질문에 대한 선택지 정보가 담겨 있고, 이를 질문 번호를 기준으로 하나의 구조로 묶어야 할 수 있습니다. 다음과 같이 두 개의 객체 배열이 있다고 가정해 보겠습니다. 첫 번째 배열(arr1)은 여러 사람이 답변한 질문 정보를, 두 번째 배열(arr2)은 각 질문에 해당하는 선택지 정보를 담고 있습니다. cons
배열에 포함된 여러 값 중에서 정확히 두 번 나타나는 요소만 골라 새로운 배열로 반환하는 JavaScript 함수를 작성해야 합니다.예를 들어 입력 배열이 [0, 1, 2, 2, 3, 3, 5]라면, 숫자 2와 3이 각각 두 번씩 등장하므로 최종 결과는 [2, 3]이 되어야 합니다.구현 예제이 문제를 해결하는 코드는 다음과 같습니다 −const arr = [0, 1, 2, 2, 3, 3, 5];const findAppearances = (arr, num) => { let co
JavaScript에서 객체 배열 두 개를 특정 키(예: id)를 기준으로 하나로 합쳐야 하는 경우가 자주 있습니다. 예를 들어, 한 배열에는 사용자의 id와 이름이 담겨 있고, 다른 배열에는 사용자의 id와 주소가 담겨 있다고 가정해 보겠습니다.const arr1 = [ {id:123,name:name 1}, {id:456,name:name 2} ]; const arr2 = [ {id:123,address:address 1}, {id:456,address:address 2} ];문제 정의우리는 이렇게
리터럴 값(숫자, 문자열 등)으로 이루어진 배열을 입력받아, 반복해서 등장하는 값을 모두 제거하고 각 값을 하나의 인스턴스만 남기는 JavaScript 함수를 작성해 보겠습니다. 입력 배열에는 동일한 값이 여러 번 포함되어 있을 수 있습니다.예제 코드아래의 deleteDuplicate 함수는 배열을 처음부터 끝까지 순회하면서, 현재 요소가 배열에서 마지막으로 등장하는 위치(lastIndexOf)와 현재 인덱스를 비교합니다. 두 위치가 서로 다르다면 같은 값이 뒤쪽에 한 번 더 존재한다는 의미이므로 해당 요소를 제거(splice)하고
문제 소개실무에서는 여러 사람의 정보가 하나의 객체에 몰려 있는 경우가 종종 있습니다. 다음과 같은 객체를 살펴보겠습니다.const obj = { Person1_Age: 22, Person1_Height: 170, Person1_Weight: 72, Person2_Age: 27, Person2_Height: 160, Person2_Weight: 56 };키 이름을 보면 Person1_, Person2_처럼 언더스코어(_) 앞의 접두사로 사람을 구분할 수 있습니다. 이번 글에서는 이런 객체를 받아 각 사람별로 데
스톱워치의 시작 시간(startTime)과 종료 시간(stopTime)이 담긴 다음과 같은 객체 배열이 있다고 가정해 보겠습니다.const arr = [ { startTime: 1234, stopTime: 2345 }, { startTime: 3452, stopTime: 9304 }, { startTime: 2345, stopTime: 7432 }, { start
JavaScript 개발을 하다 보면 한 배열에서 다른 배열에 포함된 요소들을 제거해야 하는 경우가 자주 발생합니다. 이번 글에서는 두 개의 배열을 인자로 받아, 첫 번째 배열에는 존재하지만 두 번째 배열에는 없는 요소들만 담은 새로운 배열을 반환하는 함수를 작성해 보겠습니다.접근 방식이 문제는 Array.prototype.filter() 메서드를 활용하면 간단하게 해결할 수 있습니다. filter()는 콜백 함수가 true를 반환하는 요소들만 모아 새로운 배열을 만들어 주기 때문입니다.여기에 각 요소가 두 번째 배열에 존재하는지
문제 소개숫자 배열을 첫 번째 인수로, 그리고 하나의 숫자 n을 두 번째 인수로 받는 JavaScript 함수를 작성해야 합니다.이 함수의 목표는 배열을 정렬하지 않은 상태에서 배열 안에 n개(두 번째 인수로 전달된 값) 이상의 연속된 숫자 시퀀스가 존재하는지 확인하는 것입니다.예를 들어 입력 배열이 다음과 같다고 가정해 보겠습니다.const arr = [0, 4, 6, 5, 9, 8, 9, 12];const n = 3;배열에는 4, 5, 6이라는 세 개의 연속된 숫자가 존재하므로, 함수는 true를 반환해야 합니다.구현 코드이 문