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

JavaScript

  1. 자바스크립트로 중첩 배열의 같은 인덱스 요소를 합산하여 단일 배열 만들기

    배열 안에 여러 개의 배열이 들어 있는 중첩 배열(nested array)이 있을 때, 이 배열을 입력받아 원본 배열들의 같은 인덱스에 있는 요소들의 합으로 이루어진 새로운 배열을 반환하는 함수를 작성해야 하는 경우가 있습니다.문제 예시원본 배열이 다음과 같다고 가정해 보겠습니다.[ [43, 2, 21], [1, 2, 4, 54], [5, 84, 2], [11, 5, 3, 1] ]각 하위 배열의 첫 번째 요소끼리(43 + 1 + 5 + 11 = 60), 두 번째 요소끼리(2 + 2 + 84 + 5 = 9

  2. JavaScript에서 숫자의 모든 자릿수를 재귀적으로 합산하는 방법

    숫자를 입력받아 각 자릿수의 합을 재귀적으로 계산하고, 그 결과가 한 자리 숫자가 될 때까지 반복하는 함수를 만들어야 한다고 가정해 보겠습니다.문제 이해하기예를 들어 다음과 같습니다.findSum(12345) = 1+2+3+4+5 = 15 = 1+5 = 6따라서 최종 출력값은 6이 되어야 합니다.이제 findSum() 함수의 코드를 직접 작성해 보겠습니다.예제 코드// 재귀를 사용한 구현 const findSum = (num) => {     if(num < 10){  &nbs

  3. JavaScript forEach로 부분 합계(누적합) 배열 만드는 방법

    다음과 같은 숫자 배열이 있다고 가정해 보겠습니다.const arr = [1, 1, 5, 2, -4, 6, 10];우리가 작성해야 할 함수는 원본 배열과 크기가 같은 새로운 배열을 반환하되, 각 요소가 해당 위치까지의 모든 요소를 더한 누적 합계가 되도록 하는 것입니다.따라서 기대하는 출력 결과는 다음과 같습니다.const output = [1, 2, 7, 9, 5, 11, 21];그럼 partialSum() 함수를 작성해 보겠습니다. 이 함수의 전체 코드는 아래와 같습니다.예제const arr = [1, 1, 5, 2, -4, 6

  4. JavaScript에서 두 배열의 값을 합산할 때 새 배열의 값을 255로 제한하는 방법

    각각 세 개의 요소를 가진 두 개의 배열이 있다고 가정해 보겠습니다. 각 요소는 정수 형태의 red, green, blue 색상 값을 나타냅니다.우리가 해야 할 작업은 두 배열의 대응되는 값들을 서로 더해 새로운 RGB 색상 배열을 만드는 것입니다. 단, 합산 결과가 255를 초과하는 값이 있다면 해당 값을 반드시 255로 제한(capping)해야 합니다.따라서 두 개의 배열을 인자로 받아, 입력값을 기반으로 새로운 배열을 반환하는 addColors() 함수를 정의해 보겠습니다.예제const color1 = [45, 125, 216

  5. JavaScript 중첩 배열에서 includes()가 작동하지 않을 때, JSON.stringify()로 해결하는 가장 간단한 방법

    JavaScript에서 다차원(중첩) 배열에 includes() 메서드를 그대로 사용하면 의도한 대로 동작하지 않는다는 것은 잘 알려진 고질적인 문제입니다. Array.prototype.flat() 함수로 배열을 먼저 평탄화(flatten)한 뒤 검색하는 방법도 있지만, 아직까지는 브라우저 지원 상태가 완벽하지 않은 편입니다.문제 정의그래서 우리의 과제는 배열과 문자열을 인자로 받아, 해당 문자열이 배열 안에 존재하는지 여부에 따라 불리언(Boolean) 값을 반환하는 includesMultiDimension() 함수를 만드는 것입

  6. JavaScript에서 객체 배열을 배열 객체로 변환하는 방법

    팀에 대한 데이터가 객체 배열(array of objects) 형태로 주어져 있고, 이를 역할(role)을 키(key)로, 해당 역할의 선수 이름 배열을 값(value)으로 갖는 하나의 객체(object of arrays)로 변환해야 하는 상황을 가정해 보겠습니다.샘플 데이터변환 대상이 되는 샘플 배열은 다음과 같습니다.const team = [{ role: Batsman, player: V Kohli }, { role: Wicket Keeper, player: KL Rahul }, { role:

  7. JavaScript에서 특정 값을 제외한 무작위 배열 생성하는 방법

    문제 소개두 개의 인수를 받는 함수를 만들어야 합니다. 첫 번째 인수는 반환할 배열의 길이를 나타내는 정수이고, 두 번째 인수는 결과 배열에 포함되어서는 안 되는 값들을 담은 정수 배열입니다.즉, 0부터 100 사이의 무작위 숫자로 이루어진 배열을 생성하되, 인수로 전달된 배열에 존재하는 값은 절대 포함되지 않도록 해야 합니다.주의: 생성되는 숫자들 사이에 중복된 값이 있어서도 안 됩니다.구현 방법함수 이름을 generateRandom()으로 지정하겠습니다. 전체 코드는 다음과 같습니다.예제 코드const absentArray =

  8. JavaScript에서 지정된 범위 사이의 난수를 생성하는 방법

    JavaScript에서 최솟값과 최댓값 사이의 의사 난수(pseudorandom number)를 반환하는 함수를 만들어 보겠습니다. 함수 이름은 createRandom으로 하고, 두 개의 인수 min과 max를 받으며, 이때 최댓값(max)은 범위에 포함되지 않습니다.예제 코드const min = 3; const max = 9; const createRandom = (min, max) => {     const diff = max - min;     con

  9. JavaScript로 하샤드(Harshad) 수 찾기 – 자릿수 합으로 나누어떨어지는 수 판별하기

    하샤드 수(Harshad Number)란 각 자릿수의 합으로 정확히 나누어떨어지는 수를 의미합니다. 예를 들어 126은 자릿수의 합이 1+2+6=9이고, 126을 9로 나누면 나머지 없이 딱 떨어지므로 하샤드 수입니다.하샤드 수의 특징모든 한 자리 수(1~9)는 하샤드 수입니다.하샤드 수는 [1,2,3,4,5,6,7,8,9,10], [110,111,112], [1010,1011,1012]처럼 연속된 구간(cluster)으로 존재하는 경우가 많습니다.이번에 구현할 함수는 하나의 숫자를 입력받아 다음과 같이 동작해야 합니다. 입력값이

  10. JavaScript 문자열에서 n번째 등장하는 부분 문자열을 제거하는 폴리필 만들기

    문자열 메서드를 확장하고 싶다면 String.prototype에 폴리필(polyfill)을 추가하는 방법이 유용합니다. 이번 글에서는 문자열에서 특정 부분 문자열이 n번째로 등장했을 때 그 부분을 제거하는 폴리필 함수 removeStr()을 직접 구현해 보겠습니다.함수 설계removeStr() 함수는 다음 두 가지 인자를 받습니다.subStr → 문자열에서 찾아서 제거할 부분 문자열num → 몇 번째(num) 등장을 제거할지 지정하는 숫자동작 규칙은 다음과 같습니다.부분 문자열이 성공적으로 제거되면 새로운 문자열을 반환합니다.그 외

  11. JavaScript에서 문자열에서 특정 문자(구분자) 제거하는 방법

    기본 문자열과 제거할 부분 문자열(구분자)이 주어졌을 때, 이 두 인수를 받아 해당 부분 문자열이 모두 제거된 새로운 문자열을 반환하는 함수 shedString()을 만드는 것이 목표입니다.문제 예시예를 들어 다음과 같이 호출하면,shedString(12/23/2020, /);슬래시(/)가 모두 제거된 아래 문자열을 반환해야 합니다.12232020구현 원리가장 간단하고 효율적인 방법은 split()과 join() 메서드를 조합하는 것입니다.split(separator): 문자열을 지정한 구분자를 기준으로 잘라 배열로 만듭니다. 이

  12. 자바스크립트(JavaScript)로 가장 가까운 갭풀(Gapful) 숫자 찾기

    갭풀(Gapful) 숫자란?갭풀 숫자는 다음 두 조건을 모두 만족하는 수를 말합니다.최소 세 자리 이상의 숫자로 이루어져 있고,첫 번째 자리 숫자와 마지막 자리 숫자를 이어 붙여 만든 수로 나누었을 때 나머지가 0이 됩니다.예를 들어 살펴보겠습니다.1053은 네 자리 숫자이며, 첫 자리와 끝 자리를 이어 붙인 13으로 정확히 나누어 떨어지므로 갭풀 숫자입니다. 마찬가지로 135는 세 자리 숫자이면서 15로 정확히 나누어 떨어지기 때문에 갭풀 숫자입니다.문제 정의이번 글에서 다룰 과제는, 입력으로 주어진 숫자에 대해 가장 가까운 갭풀

  13. JavaScript 입력 유효성 검사: 문자열의 모든 'a'를 '@'로, 'i'를 '!'로 바꾸기

    문제 이해하기우리는 validate()라는 함수를 작성해야 합니다. 이 함수는 문자열을 유일한 인수로 받아서, 문자열 안의 모든 a는 @로, i는 !로 바꾼 새로운 문자열을 반환합니다.이 문제는 인덱스를 사용하여 문자열을 한 글자씩 순회하면서 새로운 문자열을 만들어 가는 전형적인 for 반복문 문제입니다.예제 코드const string = Hello, is it raining in Amsterdam?;const validate = (str) => {    let validatedString

  14. JavaScript로 중복 항목을 하나로 묶고 값 합산하기 — 배열 속 배열 데이터 처리 방법

    배열 안에 여러 개의 하위 배열이 있는 데이터 구조를 다뤄야 하는 경우가 자주 있습니다. 이번 글에서는 각 하위 배열이 정확히 두 개의 요소(첫 번째는 문자열, 예를 들어 사람 이름 / 두 번째는 정수)로 구성된 경우, 첫 번째 요소가 같은 하위 배열들을 하나로 병합하고, 두 번째 요소는 해당 항목들의 값을 모두 더한 합계로 만드는 방법을 알아보겠습니다.문제 정의와 예시 데이터다음과 같은 예시 배열이 있다고 가정해 보겠습니다.const example = [ [first, 12], [second, 19], [first, 7

  15. JavaScript의 '?.'는 무엇일까? 옵셔널 체이닝(Optional Chaining) 완벽 이해하기

    JavaScript 코드를 보다가 ?.라는 낯선 구문을 만난 적이 있으신가요? 이번 글에서는 예제를 통해 ?., 즉 옵셔널 체이닝(Optional Chaining)이 무엇인지, 그리고 왜 필요한지 쉽게 이해해 보겠습니다.기본 예제: 객체 프로퍼티 접근먼저 23살 남성을 표현하는 다음과 같은 객체가 있다고 가정해 봅시다.const being = { human: { male: { age: 23 } } };이 객체에서 age 프로퍼티에 접근하려면 어떻게 해야 할까요? 아주

  16. JavaScript 즉시 실행 익명 함수와 호이스팅: 출력 결과는 무엇일까?

    문제 상황다음과 같은 코드 조각이 있다고 가정해 보겠습니다. 이 코드의 실행 결과를 예측하고, 그 이유를 설명하는 것이 과제입니다.var name = Zakir;(() => {    name = Rahul;    return;    console.log(name);    function name(){       let las

  17. JavaScript .sort() 메서드의 함정 피하기 — 원본 배열은 그대로, 정렬된 새 배열 만드는 방법

    JavaScript의 Array.prototype.sort() 함수에는 중요한 특징이 있습니다. 바로 제자리(in-place) 정렬 알고리즘이라는 점입니다. 즉, 정렬 대상 배열의 복사본을 새로 만들지 않고 기존 배열 자체를 정렬하기 때문에 추가 메모리를 소비하지 않아 효율적이고 성능이 뛰어납니다.하지만 이러한 특성이 때로는 곤란한 상황을 초래합니다.문제 상황예시를 통해 살펴보겠습니다. 문자열로 구성된 names 배열이 있다고 가정해 봅시다. 우리는 이 배열의 원래 순서는 그대로 유지하면서, 동일한 요소를 담되 알파벳순으로 정렬된

  18. JavaScript에서 % 연산자가 문자열에도 작동하는 이유 – 타입 강제 변환(Type Coercion) 완벽 이해

    다음 코드 조각은 의외의 결과를 출력합니다. 첫째, 나머지 연산자(% , 모듈로 연산자)가 문자열에 대해서도 정상적으로 동작하는 것을 확인할 수 있습니다. 둘째, 두 문자열의 결합이 예상과 다른 어색한 결과를 만들어냅니다.그렇다면 자바스크립트는 왜 이런 방식으로 동작하는 걸까요?문제가 되는 코드는 다음과 같습니다.예제const numStr = 127; const result = numStr % 5; const firstName = Armaan; const lastName = Malik; const fullName = firstNam

  19. JavaScript에서 별(*) 패턴 출력하기 – 가장 간단한 방법

    이 글에서는 자바스크립트 콘솔에 다음과 같은 별(*) 패턴을 출력하는 아주 간단한 방법을 소개합니다. 주의할 점은 결과가 HTML 화면이 아닌 콘솔(console)에 출력되어야 한다는 것입니다.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *위 패턴은 가운데를 기준으로 별의 개수가 늘어났다가 다시 줄어드는 다이아몬드 형태입니다. 이를 구현하는 핵심 아이디어는 반복문 안에서 각 줄에 출력할 별의 개수를 계산하는 것입니다.예제 코드const star = *

  20. JavaScript: 고유 필드(roll)를 기준으로 객체 속성 병합 후 결과 출력하기

    JavaScript 개발을 하다 보면 서로 다른 배열에 나뉘어 있는 객체 데이터를 하나의 고유 키(필드)를 기준으로 병합해야 하는 경우가 자주 발생합니다. 이번 글에서는 roll이라는 고유 필드를 기준으로 두 개의 속성을 합친 뒤, 그 결과를 콘솔에 출력하는 방법을 단계별로 알아보겠습니다.문제 정의students 객체는 names와 marks라는 두 가지 속성을 가지고 있습니다. names는 각 요소가 name과 roll 속성을 가지는 객체 배열이며, 마찬가지로 marks는 각 요소가 mark와 roll 속성을 가지는 객체 배열입니

Total 5929 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:125/297  20-컴퓨터/Page Goto:1 119 120 121 122 123 124 125 126 127 128 129 130 131