Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript

  1. 점 표기법으로 평탄화된 JavaScript 객체를 중첩 객체와 배열 구조로 되돌리는 방법

    API 응답이나 설정 파일을 다루다 보면 car.make, car.revisions.0.miles처럼 점(.) 표기법으로 평탄화된 키를 가진 객체를 만나게 됩니다. 이 글에서는 이렇게 평탄화된 객체를 원래의 중첩 객체와 배열 구조로 되돌리는(unflatten) 방법을 알아보겠습니다. 문제 상황 다음과 같이 모든 키가 점 표기법으로 나열된 객체가 있다고 가정해 보겠습니다. const obj = { firstName: John, lastName: Green, car.make: Honda, car.model:

  2. JavaScript에서 객체의 모든 메서드(멤버 함수) 목록 가져오기

    JavaScript에서는 객체 참조를 인자로 받아, 해당 객체에 존재하는 모든 메서드(멤버 함수)를 배열 형태로 반환하는 함수를 작성할 수 있습니다.여기서 중요한 조건은 함수 타입이 아닌 일반 속성(문자열, 숫자 등)은 결과에서 제외하고, 오직 메서드만 배열에 담아 반환해야 한다는 점입니다.핵심 아이디어: Object.getOwnPropertyNames이 문제는 Object.getOwnPropertyNames() 메서드를 활용하면 간단하게 해결할 수 있습니다.Object.getOwnPropertyNames()는 주어진 객체에 직접

  3. JavaScript 배열에서 특정 값 검색 후 다음 요소 반환하기

    이번 글에서는 JavaScript로 배열과 검색 문자열을 다루는 함수를 작성해 보겠습니다. 이 함수는 첫 번째 인자로 리터럴 값들의 배열을, 두 번째 인자로 검색할 문자열을 받습니다.함수의 동작 방식은 다음과 같습니다. 전달받은 문자열이 배열 안에 존재하는지 먼저 확인하고, 만약 해당 문자열이 배열에 있다면 그 바로 다음 위치에 있는 요소를 반환합니다. 반대로 문자열이 배열에 존재하지 않거나, 해당 문자열이 배열의 마지막 요소라서 다음 값이 없다면 false를 반환하도록 구현합니다.구현 예제const arr = [, comp, my

  4. 자바스크립트로 이진수에서 인접한 1 사이의 가장 긴 거리 구하기

    문제 소개양의 정수 n이 주어졌을 때, n의 이진 표현에서 인접한 두 개의 1 사이에 존재하는 가장 긴 거리를 찾아 반환하는 자바스크립트 함수를 작성해야 합니다.만약 인접한 두 개의 1이 존재하지 않는다면 0을 반환하면 됩니다.인접과 거리의 정의두 개의 1 사이에 0만 존재한다면(0이 하나도 없는 경우 포함) 이 둘은 인접(adjacent)하다고 정의합니다. 두 1 사이의 거리는 각 비트 위치 차이의 절댓값입니다. 예를 들어 이진수 1001에서 두 1의 거리는 3입니다.예시로 이해하기입력값이 22일 때 출력은 2가 되어야 합니다.

  5. JavaScript로 겹치는 구간 객체 그룹화하기 — reduce() 활용법

    다음과 같이 객체로 이루어진 배열이 있다고 가정해 보겠습니다. 각 객체는 userId, from, to 속성을 가지며, 특정 사용자의 구간 정보를 나타냅니다.const arr = [ {userId: 3t5bsFB4PJmA3oTnm, from: 1, to: 6}, {userId: 3t5bsFB4PJmA3oTnm, from: 7, to: 15}, {userId: 3t5bsFB4PJmA3oTnm, from: 172, to: 181}, {userId: 3t5bsFB4PJmA3oTnm, from: 182, to:

  6. JavaScript에서 JSON 객체의 rssi 값을 2차원 배열로 변환하는 방법

    다음과 같은 JSON 객체가 있다고 가정해 보겠습니다.const obj = { "test1": [{ "1": { "rssi": -25, } }, { "2": { "rssi": -25, } }], "test2": [{ "15": { "rss

  7. JavaScript 배열에서 숫자만 골라 합계 구하기

    문제 정의배열을 인수로 받아 처리하는 JavaScript 함수를 작성해야 합니다. 이 배열에는 숫자 리터럴, 문자열 리터럴, 객체, undefined 등 어떤 타입의 값이든 섞여 있을 수 있습니다.함수는 배열 안에서 숫자(Number) 타입의 값만 골라내어 그 합계를 반환해야 합니다.예제 코드const arr = [1, 2, a, 4];const countNumbers = (arr = []) => {    let sum = 0;    for(let i =

  8. JavaScript로 문자열의 대문자 사용이 올바른지 확인하는 방법

    이 문제에서는 단어 안에서 대문자가 올바르게 사용되었는지를 판단하는 기준을 다음 세 가지 규칙으로 정의합니다.모든 글자가 대문자인 경우 — 예: INDIA대문자가 전혀 없는 경우(모든 글자가 소문자) — 예: example첫 글자만 대문자인 경우 — 예: Ramesh요구 사항은 문자열을 하나 입력받아, 해당 문자열이 위 세 가지 규칙 중 하나라도 만족하는지 판별하는 JavaScript 함수를 작성하는 것입니다.규칙을 만족하면 true를 반환하고, 하나도 만족하지 않으면 false를 반환하면 됩니다.구현 예시 {   &nbs

  9. JavaScript에서 문자열 내 각 단어 반전하기

    공백을 포함할 수 있는 문자열을 인수로 받아 처리하는 JavaScript 함수를 작성해야 합니다. 이 함수는 먼저 문자열을 공백을 기준으로 분리한 뒤, 각 단어의 글자 순서를 거꾸로 뒤집고, 다시 하나의 문자열로 합쳐서 반환해야 합니다.예를 들어 입력 문자열이 다음과 같다면 −const str = this is a word;출력 결과는 다음과 같아야 합니다 −const output = siht si a drow;동작 원리핵심 로직은 세 가지 배열 메서드를 조합하는 것입니다. split()으로 단어를 개별 글자

  10. JavaScript 이진 탐색(Binary Search) 구현: 배열에서 숫자의 인덱스 찾기

    이번 글에서는 정렬된 숫자 배열과 검색하려는 숫자를 각각 첫 번째, 두 번째 인자로 받는 JavaScript 함수를 작성해 보겠습니다.함수의 동작 방식은 다음과 같습니다.검색하는 숫자가 배열에 존재하면 → 해당 요소의 인덱스를 반환존재하지 않으면 → -1을 반환이진 탐색(Binary Search)이란?이 문제는 이진 탐색 알고리즘을 활용해 해결해야 합니다. 이진 탐색은 대표적인 분할 정복(Divide and Conquer) 알고리즘으로, 배열을 반복적으로 절반씩 나누어가며 탐색 범위를 좁혀 결국 하나의 요소에 도달할 때까지 진행합니

  11. JavaScript로 두 번째 문자열이 첫 번째 문자열의 회전된 버전인지 확인하는 방법

    두 개의 문자열 str1과 str2를 입력받아, 두 번째 문자열이 첫 번째 문자열을 회전시킨 형태인지 판별하는 JavaScript 함수를 작성해야 합니다.예를 들어, 입력 문자열이 다음과 같다면 −const str1 = abcde;const str2 = cdeab;str2는 str1의 앞부분에 있던 ab를 문자열 끝으로 이동시켜 만든 것이므로, 출력 결과는 true가 되어야 합니다.알고리즘의 동작 원리이 문제는 다음 단계로 해결할 수 있습니다.1. 두 문자열의 길이가 다르면 회전 관계일 수 없으므로 false를 반환합니다

  12. JavaScript에서 동일한 키 값을 가진 객체 병합 및 개수 계산하기

    실무에서는 다음과 같이 동일한 데이터가 여러 번 중복되어 포함된 객체 배열을 자주 다루게 됩니다.const arr = [{ value: 10, id: 111, name: BlackCat, }, { value: 10, id: 111, name: BlackCat, }, { value: 15, id: 777, name: WhiteCat, }];이 배열을 인자로 받아, id 속성의 값이 서로 같은 객체들을 하나로 병합하는 JavaScript 함수를 작성해야 합니다. 병합할 때

  13. JavaScript에서 날짜 기준으로 JSON 객체 배열 병합하는 방법

    문제 소개 실무에서는 서로 다른 시점에 수집된 데이터가 하나의 배열에 섞여 있는 경우가 많습니다. 예를 들어 다음과 같이 date와 price 또는 price2를 가진 객체들이 배열에 담겨 있다고 가정해 보겠습니다. const arr = [ { date: 2010-01-01, price: 30 }, { date: 2010-02-01, price: 40 }, { date: 2010-03-01, price: 50 }, { date: 2010-01-01, price2: 45 }, { date: 2010-05-01, pr

  14. JavaScript로 여러 객체의 동일한 속성 값 합산하기

    문제 상황다음과 같이 두 개의 객체가 있다고 가정해 보겠습니다.const obj1 = { a:12, b:8, c:17 }; const obj2 = { a:2, b:4, c:1 };여기서 필요한 것은 두 객체를 인수로 받아, 이름(키)이 같은 속성들의 값을 하나로 합산하는 JavaScript 함수입니다. 즉, 최종 결과 객체는 다음과 같은 형태가 되어야 합니다.const output = { a:14, b:12, c:18 };참고: 설명의 편의상 두 개의 객체만 사용했지만, 실제로는 임의의 개수의 객체를 받아 모든

  15. JavaScript에서 객체의 날짜(date) 속성을 기준으로 배열 정렬하기

    JavaScript에서는 객체 배열에 담긴 날짜 데이터를 특정 기준에 따라 정렬해야 하는 경우가 자주 발생합니다. 이번 글에서는 각 객체가 date 속성을 가지고 있는 다음과 같은 배열을 날짜 순서대로 정렬하는 방법을 알아보겠습니다.const arr = [     {date: 2016-06-08 18:10:00},     {date: 2016-04-26 20:01:00},     {date: 2017-02-06 14:38:00

  16. JavaScript 투 포인터 알고리즘으로 문자열 부분 수열(Subsequence) 여부 확인하기

    문제 개요두 개의 문자열 str1과 str2가 주어졌을 때, str1이 str2의 부분 수열(subsequence)인지 판별하는 함수를 작성해야 합니다.여기서 부분 수열이란 원본 문자열에서 일부 문자(0개일 수도 있음)를 삭제하더라도 남은 문자들의 상대적인 순서는 그대로 유지된 채 만들어지는 새로운 문자열을 의미합니다.예를 들어, ace는 abcde에서 b와 d를 제거한 것이므로 부분 수열이 맞지만, aec는 원본에서의 문자 순서가 뒤바뀌었기 때문에 부분 수열이 아닙니다.풀이 접근 방식이 문제는 투 포인터(two pointer) 기

  17. 자바스크립트로 다차원 배열과 단일 배열의 교집합 찾기 — 하위 배열별 공통 요소 추출 함수

    이번 글에서는 숫자로 구성된 2차원 배열을 첫 번째 인자로, 단일 숫자 배열을 두 번째 인자로 받는 자바스크립트 함수를 작성해 보겠습니다. 이 함수는 첫 번째 인자로 전달된 각 하위 배열을 검사하여, 두 번째 배열과 공통으로 포함된 요소들만 골라 새로운 하위 배열을 만든 뒤 이들을 하나의 배열로 묶어 반환합니다.예를 들어 입력이 다음과 같다고 가정해 보겠습니다.입력 예시const arr1 = [ [1, 2, 5, 6], [5, 13, 7, 8], [9, 11, 13, 15], [13, 14, 15, 16], [1,

  18. JavaScript 배열 그룹화 - 간선으로 연결된 숫자 집합(연결 요소) 찾기

    다음과 같은 입력 배열과 출력 배열이 있다고 가정해 보겠습니다.const input = ["0:3", "1:3", "4:5", "5:6", "6:8"];const output = [    [0, 1, 3],    [4, 5, 6, 8]];각 숫자를 그래프의 노드(node)로, 각 쌍 x:y를 노드 x와 y를 잇는 간선(edge)으로 생각해 봅시다. 우리가 해야 할 과제는 정

  19. 자바스크립트로 문자열의 모음만 뒤집는 방법

    이 글에서는 문자열을 입력받아 그 안의 모음(vowel)만 뒤집어 새 문자열을 반환하는 자바스크립트 함수를 작성하는 방법을 소개합니다. 자음들은 원래 자리에 그대로 두고, 오직 모음들의 순서만 역순으로 바꾸는 것이 핵심입니다.문제 이해하기예를 들어, 입력 문자열이 다음과 같다고 가정해 보겠습니다.const str = Hello;그렇다면 기대되는 출력 결과는 아래와 같습니다.const output = Holle;Hello에는 모음이 e와 o, 두 개 있습니다. 이 두 모음의 위치를 서로 바꾸면 Holle이 됩니다. 자음인 H, l,

  20. Math.sqrt() 없이 자바스크립트로 음수가 아닌 숫자의 제곱근 구하기

    문제 개요이번 글에서는 Math.sqrt() 메서드를 사용하지 않고, 음수가 아닌 정수의 제곱근을 계산해 반환하는 자바스크립트 함수를 작성하는 방법을 알아보겠습니다.요구 사항은 다음과 같습니다. 함수는 음수가 아닌 정수를 인자로 받아 제곱근을 계산한 뒤 반환해야 하며, 소수점 이하 값은 버리고(내림하여) 정수만 반환하면 됩니다.예를 들어 입력값이 15라면 정확한 제곱근(약 3.87)을 반환할 필요가 없습니다. 15보다 작거나 같은 가장 가까운 정수인 3을 반환하면 충분합니다.접근 방식: 이진 탐색(Binary Search)이 문제는

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:58/297  20-컴퓨터/Page Goto:1 52 53 54 55 56 57 58 59 60 61 62 63 64