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

JavaScript

  1. JavaScript에서 배열 내 동일한 키 값을 가진 객체 개수 세는 방법

    문제 상황다음과 같이 사용자 정보를 담고 있는 객체 배열이 있다고 가정해 보겠습니다.const arr = [ { name: aaa, id: 2100, designation: developer }, { name: bbb, id: 8888, designation: team lead }, { name: ccc, id: 6745, designation: manager }

  2. JavaScript로 숫자 N을 2의 거듭제곱 조각으로 분할하기 – 조각 개수와 크기의 제약 조건

    문제 정의 주어진 숫자를 특정 규칙에 따라 여러 조각(chunk)으로 나누는 JavaScript 함수를 작성해야 합니다. 이때 반드시 지켜야 할 규칙은 다음과 같습니다. 조각(버킷)의 개수는 반드시 2의 거듭제곱이어야 합니다. 각 조각에 담기는 항목의 개수 역시 2의 거듭제곱이어야 하며, 최대 크기는 32입니다. 즉, 허용되는 크기는 1, 2, 4, 8, 16, 32뿐입니다. 예제로 이해하기 예를 들어 숫자 8은 다음과 같이 하나의 버킷으로 나눌 수 있습니다. [8] 숫자 9라면 어떨까요? [8, 1] 이 경우 두 숫자 모두 2

  3. JavaScript에서 객체 배열을 키 기준 배열 객체로 변환하는 방법

    JavaScript 개발을 하다 보면 여러 개의 객체가 담긴 배열을, 각 키를 기준으로 값들을 묶어 놓은 하나의 객체 형태로 바꿔야 하는 경우가 종종 있습니다. 예를 들어 날짜별 데이터가 여러 객체에 흩어져 있을 때, 이를 날짜를 키로 하는 배열로 재구성하면 이후 데이터를 조회하거나 가공하기가 훨씬 수월해집니다. 문제 상황 다음과 같이 날짜를 키로 하는 객체들이 담긴 배열이 있다고 가정해 보겠습니다. const nights = [     { 2016-06-25: 32, 2016-06-26: 151

  4. JavaScript에서 null 값이 포함된 객체를 배열 맨 뒤로 정렬하는 방법

    JavaScript 프로그래밍을 하다 보면 객체 배열 안에 null 값이 섞여 있는 경우가 종종 있습니다. 이때 일반적인 정렬 방식을 그대로 사용하면 null 값 때문에 비교 연산이 제대로 이루어지지 않아 의도하지 않은 결과가 나올 수 있습니다.이번 글에서는 객체의 특정 키(key)가 null로 매핑되어 있을 때, 해당 객체들을 배열의 맨 뒤로 밀어내는 정렬 함수를 작성하는 방법을 알아보겠습니다.문제 상황 정리요구 사항은 다음과 같습니다.객체 배열을 입력으로 받는 JavaScript 함수를 작성한다.특정 키의 값이 null인 객체들

  5. JavaScript로 숫자의 n제곱근(n번째 근)을 계산하는 방법

    이 글에서는 숫자의 n제곱근(n번째 근)을 계산하여 그 결과를 반환하는 JavaScript 함수를 작성하는 방법을 알아봅니다.n제곱근 계산의 핵심 원리수학적으로 어떤 수 m의 n제곱근은 m^(1/n)으로 표현할 수 있습니다. JavaScript에서는 내장 함수인 Math.pow()를 활용해 손쉽게 구현할 수 있습니다.다만 몇 가지 주의할 점이 있습니다.음수의 짝수 제곱근은 실수 범위에서 존재하지 않습니다.음수의 홀수 제곱근은 존재하므로, 이 경우 부호를 별도로 처리해야 합니다.부동소수점 연산 특성상 결과에 미세한 오차가 발생할 수

  6. JavaScript로 평면 배열 객체를 트리 구조로 변환하는 방법

    실제 개발을 하다 보면 parentId처럼 부모 참조만 담고 있는 평면(flat) 형태의 배열을 마주하게 됩니다. 이런 데이터를 그대로 사용하기보다는, 계층 관계가 드러나는 트리(tree) 구조로 변환해야 화면에 카테고리나 메뉴를 직관적으로 렌더링할 수 있습니다.이번 글에서는 다음과 같은 배열이 주어졌을 때, 각 자식 요소를 부모 객체와 연결하여 트리 데이터 구조를 만들고, 결과를 중첩 리스트(nested list) 형태로 화면에 출력하는 방법을 알아보겠습니다.const arr = [ { id: 1, name: name 1,

  7. 자바스크립트로 선형 시간(O(n))에 푸는 두 수의 합(Two Sum) 문제

    숫자로 이루어진 배열을 첫 번째 인수로, 목표 합계(target sum)를 두 번째 인수로 받는 자바스크립트 함수를 작성해야 합니다.이 함수는 배열 내에서 서로 더했을 때 목표 합계가 되는 두 숫자를 찾아 해당 요소들의 인덱스를 배열 형태로 반환해야 합니다. 이때 두 숫자는 반드시 연속된 요소일 필요는 없습니다.핵심 조건은 이 작업을 선형 시간(O(n)), 즉 단 한 번의 반복으로 처리해야 한다는 점입니다.접근 방법: 해시 맵(Map) 활용선형 시간 안에 문제를 해결하려면 중첩 반복문을 사용하는 브루트 포스 방식 대신 Map 객체를

  8. JavaScript로 임의 개수의 배열에서 공통 요소 찾기

    문제 상황다음과 같이 여러 개의 숫자 배열을 값으로 가지는 객체가 있다고 가정해 보겠습니다.const obj = { a: [ 15, 23, 36, 49, 104, 211 ], b: [ 9, 12, 23 ], c: [ 11, 17, 18, 23, 38 ], d: [ 13, 21, 23, 27, 40, 85] };이 객체에 포함된 배열의 개수는 고정되어 있지 않으며, 임의의 개수만큼 존재할 수 있습니다.우리는 이러한 객체를 인수로 받아, 모든 배열에 공통으로 포함된 요소들만 모은 새로운 배열을 반환하는 자바

  9. JavaScript에서 주어진 단어 배열로 문자열을 분할할 수 있는지 확인하는 방법

    문제 개요빈 문자열이 아닌 하나의 문자열 str과, 공백 없이 이루어진 단어들로 구성된 문자열 배열 arr이 주어집니다. 이때 str을 배열에 존재하는 하나 이상의 단어를 공백으로 구분한 시퀀스 형태로 분할할 수 있는지 판별하는 함수를 작성해야 합니다.참고 사항분할 과정에서 배열에 있는 동일한 단어를 여러 번 재사용할 수 있습니다.배열에는 중복된 단어가 포함되어 있지 않습니다.예제 1입력이 다음과 같다고 가정해 보겠습니다.const str = "applepenapple"; const arr = ["appl

  10. JavaScript에서 대소문자를 구분해 문자열 배열 정렬하기

    문제 상황다음과 같은 문자열 리터럴 배열이 있다고 가정해 보겠습니다.const arr = [1185 Design,3 D Exhibits,44Doors, 4Concepts,ABC Data,acceleration];이 배열을 제자리(in-place)에서 정렬하는 JavaScript 함수를 작성해야 합니다. 단, 단순한 사전순 정렬이 아니라 다음과 같은 규칙을 따라야 합니다.특수문자나 숫자로 시작하는 문자열이 가장 앞에 위치합니다.그 뒤의 문자열들은 알파벳 순서대로 정렬됩니다.같은 알파벳으로 시작하지만 대소문자가 다른 경우(예: a와 A

  11. JavaScript로 정렬된 배열의 중복 요소 제거하기 — O(1) 추가 메모리로 In-place 처리

    정렬된 리터럴 배열이 하나 주어져 있다고 가정해 보겠습니다. 우리가 작성해야 할 함수는 배열 안의 모든 중복 요소를 제거하여 각 요소가 딱 한 번만 나타나도록 만들고, 그 결과 배열의 새로운 길이를 반환하는 역할을 합니다.단, 여기에는 중요한 제약 조건이 있습니다. 별도의 배열을 위한 추가 공간을 할당할 수 없다는 점입니다. 즉, O(1)의 추가 메모리만 사용하면서 입력 배열 자체를 직접 수정(in-place)하는 방식으로 문제를 해결해야 합니다.예제 코드이를 구현한 코드는 다음과 같습니다.const arr = [1, 3, 3, 6

  12. JavaScript로 두 배열의 모든 조합 만들기 – 카테시안 곱 객체 배열 생성 방법

    두 개의 문자열 배열이 있다고 가정해 보겠습니다. 하나는 사용자 이름 목록을 담고 있고, 다른 하나는 각 사용자에게 연결할 데이터(SOP) 목록을 담고 있습니다.const users = [Rahul, Dinesh, Rohit]; const data = [SOP1, SOP2, SOP3, SOP4];여기서 작성해야 할 것은 이런 두 개의 배열을 인자로 받아 새로운 객체 배열을 반환하는 JavaScript 함수입니다.반환되는 배열에는 users 배열과 data 배열 사이의 모든 가능한 조합마다 하나씩 객체가 포함되어야 합니다. 수학적으로

  13. JavaScript로 이진 트리 반전하기: 재귀를 활용한 좌우 뒤집기 완벽 가이드

    다음과 같은 형태의 이진 트리가 주어져 있다고 가정해 보겠습니다.      4    /   \  2     7 / \   / \1  3   6  9우리가 작성해야 할 것은 이 이진 트리의 루트(root) 노드를 인자로 받아, 트리 전체를 좌우

  14. JavaScript – 두 번째 문자열에 없는 첫 번째 문자열의 요소 삭제하기

    이번 글에서는 두 개의 문자열을 인수로 받아, 첫 번째 문자열 중 두 번째 문자열에도 포함된 문자만 남기고 나머지는 모두 제거한 새로운 문자열을 반환하는 JavaScript 함수를 작성해 보겠습니다.중요한 점은 결과 문자열에서 문자들이 등장하는 순서가 바뀌어서는 안 된다는 것입니다. 즉, 결과물은 반드시 첫 번째 문자열과 동일한 순서를 그대로 유지해야 합니다.예제 코드이 문제를 해결하는 코드는 다음과 같습니다. { return map.hasOwnProperty(el); }); return strArr1.join

  15. 재귀와 flat() 없이 자바스크립트로 임의 깊이의 중첩 배열을 평탄화하는 방법

    문제 상황다음과 같이 여러 단계로 중첩된 숫자 배열이 있다고 가정해 보겠습니다.const arr = [1, 4, 5, [    5, 6, [       6, 19, 5, [5]    ], [5, 7, 6, [6, 8]], 8], 6];여기서 우리가 작성해야 할 것은 임의의 깊이까지 중첩된 배열을 입력으로 받아, 그 배열을 완전히 펼친(flat) 새로운 배열을 반환하는 자바스크립트 함수입니다.피해야 할

  16. 배열의 모든 값 앞에 문자열을 추가하는 JavaScript 함수 만들기

    다음과 같은 문자열 리터럴 배열이 있다고 가정해 보겠습니다.const arr = [a, b, c];Hello라는 문자열이 있고, 이 문자열을 배열의 모든 값 앞에 붙이고 싶은 상황입니다.따라서 우리가 만들 함수는 첫 번째 인수로 문자열 배열을, 두 번째 인수로 하나의 문자열을 받아야 합니다.함수는 두 번째 인수로 전달받은 문자열을 배열의 각 요소 앞에 추가하면 됩니다.또한 두 값 사이에는 구분자(여기서는 _)를 삽입해야 합니다.결국 기대하는 출력 결과는 다음과 같습니다.const output = [Hello_a, Hello_b, H

  17. JavaScript 객체 배열 속성 값 합산하기 – 과목별 데이터 그룹화 완벽 가이드

    실무 개발에서는 학생 성적 데이터처럼 중복된 키를 가진 객체 배열을 하나의 요약된 배열로 묶어야 하는 경우가 자주 발생합니다. 이 글에서는 subject 속성을 기준으로 중복 항목을 제거하고, 각 고유 항목의 marks와 noOfStudents 값을 합산하는 방법을 예제와 함께 살펴보겠습니다. 문제 상황 다음과 같이 학생들의 과목별 점수와 인원수가 담긴 객체 배열이 있다고 가정해 보겠습니다. const arr = [     { subject: Maths, marks: 40, noOfStuden

  18. JavaScript에서 가장 가까운 N 단위로 반올림하는 방법

    다음과 같은 숫자가 있다고 가정해 보겠습니다.const num = 76;이 숫자를 원하는 자릿수 단위로 반올림하면 결과는 다음과 같습니다.10 단위에서 가장 가까운 값으로 반올림하면 80100 단위에서 가장 가까운 값으로 반올림하면 1001000 단위에서 가장 가까운 값으로 반올림하면 0반올림 함수 작성하기이제 반올림할 숫자를 첫 번째 인수로, 반올림할 단위(factor)를 두 번째 인수로 받는 JavaScript 함수를 작성해야 합니다.핵심 아이디어는 간단합니다. 먼저 숫자를 해당 단위로 나누어 몫을 구한 뒤, Math.round

  19. 자바스크립트로 요세푸스 순열 효율적으로 구현하기

    요세푸스 문제의 유래 이 문제의 이름은 고대 역사가 요세푸스(Josephus)의 일대기에서 가장 극적인 사건에서 따온 것입니다. 그의 이야기에 따르면, 요세푸스와 부하 병사 40명은 로마군의 포위 공격으로 동굴에 갇히게 됩니다. 적에게 항복하기를 거부한 그들은 집단 자결을 택했는데, 여기에 독특한 규칙이 있었습니다. 원형으로 둘러선 뒤 세 번째 사람마다 차례로 제거해 나가 단 한 명만 남을 때까지 반복하고, 마지막에 남은 사람이 스스로 목숨을 끝내기로 한 것입니다. 요세푸스와 다른 한 사람이 최후의 두 사람까지 살아남았습니다. 그리

  20. JavaScript에서 쉼표와 세미콜론으로 구분된 문자열을 2차원 배열로 분할하는 방법

    JavaScript를 사용하다 보면 쉼표(,)와 세미콜론(;)으로 구분된 복잡한 형태의 문자열을 다뤄야 하는 경우가 종종 있습니다. 예를 들어, 각 사용자가 세미콜론으로 구분되고, 각 사용자의 속성은 쉼표로 구분된 다음과 같은 문자열이 있다고 가정해 보겠습니다.const users = Bob,1234,Bob@example.com;Mark,5678,Mark@example.com;여기서 요구되는 것은 이러한 형태의 문자열을 입력받아 아래와 같은 2차원(다차원) 배열로 변환하는 JavaScript 함수를 작성하는 것입니다.const ar

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:54/297  20-컴퓨터/Page Goto:1 48 49 50 51 52 53 54 55 56 57 58 59 60