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

JavaScript

  1. JavaScript에서 첫 번째 배열의 요소 순서대로 두 번째 배열 정렬하기

    JavaScript로 작업하다 보면 하나의 배열에 담긴 순서 정보를 기준으로 다른 배열을 재정렬해야 하는 경우가 종종 있습니다. 예를 들어, 키 순서를 담은 배열과 실제 데이터 객체 배열이 따로 존재하는 상황이 대표적입니다.문제 상황다음과 같이 두 개의 배열이 있다고 가정해 보겠습니다.const arr1 = [d,a,b,c]; const arr2 = [{a:1},{c:3},{d:4},{b:2}];여기서 우리가 작성해야 할 함수는 이 두 배열을 인자로 받아, 첫 번째 배열(arr1)의 요소 순서에 따라 두 번째 배열(arr2)을 정렬

  2. JavaScript 배열에서 빈 인덱스와 undefined 요소 제거하기

    문제 상황다음과 같이 중간중간 빈 인덱스(hole)가 포함된 배열 리터럴이 있다고 가정해 보겠습니다.const arr = [4, 6, , 45, 3, 345, , 56, 6];이 배열에서 undefined 또는 빈(empty) 요소만 골라내어 원본 배열 자체에서(in-place) 제거하는 JavaScript 함수를 작성해야 합니다. 여기서 주의할 점은 0, , false처럼 falsy로 평가되는 모든 값을 지우는 것이 아니라, 오직 undefined와 빈 값만 제거해야 한다는 것입니다.접근 방법가장 직관적인 방법은 for 루프로 배

  3. JavaScript로 숫자의 팩토리얼(계승)을 계산하는 함수 작성하기

    이번 글에서는 숫자 n을 입력받아 해당 숫자의 팩토리얼(factorial, 계승)을 계산하는 간단한 JavaScript 함수를 작성해 보겠습니다.팩토리얼이란?팩토리얼은 1부터 n까지의 모든 양의 정수를 곱한 값으로, 수학 기호로는 n!로 표현합니다. 예를 들어 5! = 5 × 4 × 3 × 2 × 1 = 120입니다. 조합론, 확률 계산 등 다양한 분야에서 활용되는 개념입니다.알고리즘 접근 방식가장 직관적인 방법은 반복문을 활용하는 것입니다. 알고리즘의 흐름은 다음과 같습니다.먼저 결과를 저장할 변수(res)를 1로 초기화합니다.

  4. JavaScript 배열에서 최솟값 요소의 모든 인덱스를 배열로 반환하기

    문제 상황다음과 같은 숫자 배열이 있다고 가정해 보겠습니다.const arr = [1,2,3,4,1,7,8,9,1];배열에서 가장 작은 요소의 인덱스를 찾고 싶다면 Math.min과 indexOf를 조합하여 간단히 해결할 수 있습니다.const min = Math.min.apply(Math, arr);const ind = arr.indexOf(min);이 코드는 ind에 0을 할당하며, 실제로 올바른 결과입니다.기존 방식의 한계그러나 위 배열처럼 최솟값이 여러 개 존재하는 경우(여기서는 1이 세 번 등장)에는 첫 번째 인덱스만 반환

  5. JavaScript에서 랜덤 16진수 색상 코드 생성하는 방법

    웹 개발을 하다 보면 호출할 때마다 무작위로 생성된 16진수(hex) 색상 코드를 반환하는 JavaScript 함수가 필요한 경우가 있습니다. 이번 글에서는 randomColor라는 함수를 직접 작성하여 매번 새로운 랜덤 색상을 만들어내는 방법을 알아보겠습니다.구현 원리16진수 색상 코드는 # 기호 뒤에 0부터 f까지의 16진수 문자 6개가 이어지는 형태입니다(예: #a20ee1). 따라서 구현 방식은 다음과 같습니다.색상 문자열을 #으로 초기화합니다.6번 반복하면서 매번 0~15 사이의 난수를 생성합니다.toString(16) 메

  6. JavaScript 배열에서 중복 요소 제거 후 빈 문자열로 채우는 방법

    이번 글에서는 배열을 인자로 받아 중복된 값을 모두 제거하고, 제거된 개수만큼 빈 문자열을 배열 끝에 추가하는 함수를 작성해 보겠습니다.동작 방식 이해하기예를 들어 배열에서 중복 값이 4개 발견되었다면, 해당 중복 값들을 모두 제거한 뒤 배열의 마지막에 빈 문자열 4개를 추가해야 합니다.즉, 원래 배열의 길이는 그대로 유지하면서 고유한 값들만 앞쪽에 배치하고, 나머지 자리는 빈 문자열로 채우는 방식입니다.구현 코드reduce 메서드를 활용하면 배열을 한 번 순회하면서 중복 여부를 판별할 수 있습니다. 각 요소가 자신의 위치 이후에

  7. JavaScript에서 다른 배열을 기준으로 배열 필터링하는 방법

    두 개의 배열이 다음과 같이 주어져 있다고 가정해 보겠습니다.const arr1 = [4, 23, 7, 6, 3, 6, 4, 3, 56, 4]; const arr2 = [4, 56, 23];여기서 우리가 작성해야 할 것은 두 배열을 인자로 받아, 첫 번째 배열에서 두 번째 배열에 포함되지 않은 요소만 남도록 필터링한 뒤 그 결과 배열을 반환하는 JavaScript 함수입니다.따라서 기대하는 출력 결과는 다음과 같습니다.const output = [7, 6, 3, 6, 3];구현 방법이 기능은 Array.prototype.filter

  8. JavaScript에서 문자열을 중첩 JSON 객체로 변환하는 방법

    문제 소개문자가 두 개씩 짝지어져 있는 특수한 형태의 문자열이 있다고 가정해 보겠습니다.const str = AABBCCDDEE;이 문자열을 기반으로 아래와 같은 구조의 객체를 만들어야 합니다.const obj = {    code: AA,    sub: {        code: BB,        sub: { 

  9. JavaScript에서 배열 요소의 동일성 확인하기 – 순서 기반 비교 방법

    두 개의 배열이 주어졌을 때, 같은 인덱스에 위치한 값들이 몇 개나 일치하는지 세는 함수를 작성해야 하는 경우가 있습니다. 이때 중요한 조건은 비교가 순서에 의존적(sequence dependent)이라는 점입니다.즉, 첫 번째 배열의 첫 번째 요소는 두 번째 배열의 첫 번째 요소와, 두 번째 요소는 두 번째 요소와 비교하는 식으로 인덱스가 서로 대응되는 값들만 비교합니다.예시다음과 같은 두 배열이 입력으로 주어진다고 가정해 보겠습니다.const arr1 = [4, 7, 4, 3, 3, 3, 7, 6, 5]; const arr2 =

  10. JavaScript로 행·열·초기값을 지정해 2차원 배열 생성하는 방법

    JavaScript에서는 입력값에 따라 다차원 배열을 동적으로 생성해야 하는 경우가 자주 있습니다. 이번 글에서는 행(row), 열(column), 초기값(value) 세 가지 정보를 받아 원하는 형태의 2차원 배열을 만드는 함수를 직접 구현해 보겠습니다.함수가 받아야 할 세 가지 요소row – 최상위 배열 안에 포함될 하위 배열(행)의 개수col – 각 하위 배열에 들어갈 요소(열)의 개수val – 하위 배열 내 모든 요소에 채워 넣을 값예를 들어 세 가지 입력값이 각각 2, 3, 10이라면, 함수는 다음과 같은 결과를 반환해야

  11. JavaScript에서 첫 번째 요소를 기준으로 배열 그룹화하기

    JavaScript로 개발을 하다 보면 중첩 배열의 데이터를 특정 기준에 따라 묶어야 하는 경우가 자주 발생합니다. 이번 글에서는 배열의 첫 번째 요소가 같은 값끼리 두 번째 요소들을 하나의 배열로 그룹화하는 방법을 알아보겠습니다.문제 상황다음과 같이 숫자 쌍으로 이루어진 중첩 배열이 있다고 가정해 봅시다.const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];각 하위 배열은 반드시 정확히 두 개의 요소를 가지고 있습니다. 여기서 우리가 작성해야 할 함

  12. JavaScript로 숫자를 자릿값 배열로 확장하는 방법

    JavaScript에서 숫자를 입력받으면 해당 숫자를 구성하는 각 자릿수의 자릿값(place value)을 담은 배열을 반환하는 함수를 작성해야 하는 경우가 있습니다. 예를 들어 숫자 123이 주어졌다면, 함수는 다음과 같은 배열을 출력해야 합니다.[100, 20, 3]즉, 123은 백의 자리 100, 십의 자리 20, 일의 자리 3으로 분해되며, 함수는 인자로 전달받은 숫자의 모든 자릿수에 대한 자릿값을 배열 형태로 돌려주는 역할을 합니다.해결 접근 방식: 재귀(Recursion) 활용이 문제는 반복문 없이도 재귀 함수를 활용하면

  13. JavaScript에서 객체 역 매핑하기: 값으로 키를 찾는 방법

    JavaScript에서 객체의 키(key)가 아닌 값(value)을 이용해 해당 키를 찾아야 하는 경우가 종종 있습니다. 이런 기법을 역 매핑(reverse mapping)이라고 부르며, 객체의 구조를 뒤집어 값과 키의 관계를 반전시키는 방식으로 구현할 수 있습니다.문제 상황다음과 같은 객체가 있다고 가정해 보겠습니다.const products = { Pineapple: 38, Apple: 110, Pear: 109 };이 객체에서 모든 키는 서로 고유하고, 모든 값 역시 서로 고유합니다.여기서 우리가 만들어야

  14. JavaScript로 배열에서 회문(팰린드롬) 요소만 골라내는 방법

    이번 글에서는 문자열과 숫자가 섞여 있는 배열을 입력받아, 그중 회문(palindrome)에 해당하는 요소들만 모아 새로운 배열로 반환하는 JavaScript 함수를 만들어 보겠습니다.문제 정의예를 들어 다음과 같은 배열이 입력으로 주어졌다고 가정해 봅시다.const arr = [carecar, 1344, 12321, did, cannot];여기서 회문인 요소는 앞에서 읽으나 뒤에서 읽으나 같은 값들입니다. 따라서 기대되는 출력 결과는 다음과 같습니다.const output = [12321, did];carecar는 뒤집으면 rac

  15. JavaScript에서 JSON 객체 값을 정렬하는 방법

    JavaScript로 개발을 하다 보면 객체(Object)에 담긴 값들을 추출하여 오름차순으로 정렬해야 하는 경우가 종종 있습니다. 이번 글에서는 JSON 형태의 객체에서 값을 꺼내어 정렬된 배열로 변환하는 방법을 알아보겠습니다.문제 상황다음과 같은 객체가 있다고 가정해 보겠습니다.const obj = { key1: 56, key2: 67, key3: 23, key4: 11, key5: 88 };이 객체를 입력받아 아래와 같이 값들이 오름차순으로 정렬된 배열을 반환하는 JavaScript 함수를

  16. JavaScript 배열에서 중복 요소의 모든 인스턴스 제거하기

    배열을 입력받아 모든 중복 값을 제거한 새로운 배열을 반환하는 함수를 작성해야 합니다. 여기서 핵심은 단순히 중복을 하나만 남기는 것이 아니라, 원본 배열에서 두 번 이상 등장한 값이라면 새 배열에는 한 번도 포함되지 않아야 한다는 점입니다.문제 예시예를 들어 입력 배열이 다음과 같다면,const arr = [763,55,43,22,32,43,763,43];기대하는 출력 결과는 아래와 같습니다.const output = [55, 22, 32];위 예시에서 763과 43은 각각 두 번 이상 등장했기 때문에 결과 배열에서 완전히 제외됩

  17. JavaScript 루프와 재귀를 활용한 중첩 배열 평탄화(병합) 방법

    JavaScript에서는 중첩된 배열 안에 false, null 같은 값이 섞여 있어도 이를 그대로 유지하면서, 모든 요소를 하나의 평탄한(flat) 배열로 만들어야 하는 경우가 자주 있습니다. 이번 글에서는 재귀 호출과 반복문을 활용해 다차원 배열을 1차원 배열로 병합하는 함수를 직접 구현해 보겠습니다.문제 정의요구 사항은 다음과 같습니다. 중첩 배열(내부에 배열을 포함하는 배열)을 입력받아, 내부의 모든 요소를 순서대로 꺼내어 중첩 없이 하나의 배열로 반환하는 JavaScript 함수를 작성하는 것입니다.예를 들어 아래와 같은

  18. JavaScript에서 배열의 동일한 항목들을 그룹으로 묶는 방법

    문제 상황중복된 값이 포함된 숫자 배열이 있을 때, 이 배열을 인자로 받아 동일한 항목끼리 하나의 하위 배열(subarray)로 묶고, 그렇게 형성된 새로운 배열을 반환하는 함수를 작성해야 합니다.예를 들어, 입력 배열이 다음과 같다면 −const arr = [234, 65, 65, 2, 2, 234];// 출력 결과는 다음과 같아야 합니다 −const output = [[234, 234], [65, 65], [2, 2]];접근 방법이 문제는 해시맵(Hash Map)을 활용하면 효율적으로 해결할 수 있습니다.

  19. 재귀 함수로 JavaScript 배열에서 연속된 중복 요소 제거하기

    이번 글에서는 숫자 또는 문자열 리터럴로 구성된 배열을 입력받아, 연속으로 반복되는 중복 요소를 제거하는 함수를 작성해 보겠습니다. 여기서 핵심 조건은 추가적인 메모리 공간을 사용하지 않고 원본 배열 자체를 수정해야 한다는 점입니다.예를 들어, 다음과 같은 입력 배열이 있다고 가정해 보겠습니다.const arr = [17, 17, 17, 12, 12, 354, 354, 1, 1, 1];연속된 중복 항목이 모두 제거되면 결과는 다음과 같아야 합니다.const output = [17, 12, 354, 1];주의할 점은 배열 전체에서 고

  20. JavaScript 배열에서 가장 먼저 중복되는 요소의 인덱스 찾기

    배열을 순회하면서 가장 먼저 두 번 이상 등장하는 요소의 인덱스를 반환하는 함수를 작성해야 합니다. 만약 모든 요소가 고유하다면, 즉 중복된 요소가 하나도 없다면 -1을 반환해야 합니다.이 문제의 핵심 조건은 상수 공간(constant space)에서 해결해야 한다는 점입니다. 즉, Set이나 Map 같은 추가 메모리를 사용하지 않고 풀어야 합니다.접근 방법가장 간단한 방법은 for 루프로 배열을 순회하면서, 각 요소에 대해 Array.prototype.lastIndexOf() 메서드를 호출하는 것입니다.lastIndexOf()는

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:71/297  20-컴퓨터/Page Goto:1 65 66 67 68 69 70 71 72 73 74 75 76 77