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

JavaScript

  1. JavaScript에서 배열 요소 길이만큼 문자열 분할하는 방법

    문자열과 숫자 배열이 주어졌을 때, 배열의 각 요소 값을 길이로 삼아 문자열을 순서대로 잘라내는 작업을 해야 한다고 가정해 보겠습니다.입력 예시const string = Javascript splitting string by given array element; const arr = [2, 4, 5, 1, 3, 1, 2, 3, 7, 2];출력 결과[Ja, vasc, ript , s, pli, t, ti, ng , string , by]위 결과를 보면 첫 번째 요소 2에 따라 앞의 2글자 Ja가 잘리고, 다음 요소 4에 따라 vasc

  2. 자바스크립트 배열에서 상하류 순 속도(Net Velocity)를 계산하는 방법

    문제 소개모터보트가 상류(upstream)와 하류(downstream)를 오갈 때 기록된 속도 정보가 담긴 배열이 있다고 가정해 보겠습니다. 각 요소는 이동 방향과 그때의 속도를 객체 형태로 저장하고 있습니다.다음은 예제로 사용할 샘플 배열입니다.const arr = [{    direction: upstream,    velocity: 45}, {    direction: downstream,   

  3. 문자열1의 일부를 재배열하여 문자열2를 만들 수 있는 경우 true를 반환하는 JavaScript 함수 작성 방법

    문자열1(str1)의 일부 문자들을 재배열하여 문자열2(str2)와 동일하게 만들 수 있는지 판별하는 함수를 작성해 보겠습니다.즉, scramble(str1, str2) 함수는 str1에 포함된 일부 문자들을 재배열하여 str2를 만들 수 있으면 true를, 만들 수 없으면 false를 반환합니다.예시str1이 cashwool이고 str2가 school인 경우 → truestr1이 katas이고 str2가 steak인 경우 → falsecashwool에는 school을 만드는 데 필요한 모든 문자(c, s, h, o×2, l)가 포

  4. 자바스크립트에서 객체 필드 존재 여부에 따라 배열 정렬하기

    문제 상황자바스크립트에서 객체 배열을 다룰 때, 특정 필드의 존재 여부를 기준으로 정렬해야 하는 경우가 종종 있습니다. 예를 들어 다음과 같이 이름 정보가 제각각인 객체 배열이 있다고 가정해 보겠습니다.const people = [{    firstName: Ram,    id: 301}, {    firstName: Shyam,    lastName: Singh,  &nb

  5. 자바스크립트(ES6)에서 대소문자와 순서에 관계없이 두 문자열을 비교하는 방법

    두 개의 문자열을 인수로 받아, 문자의 등장 순서나 대소문자와 관계없이 두 문자열이 서로 같은 문자들로 구성되어 있는지 판별하는 isEqual() 함수를 작성해야 한다고 가정해 봅시다. 예를 들어 다음과 같습니다. const first = Aavsg; const second = VSAAg; isEqual(first, second); // true 즉, 두 문자열에 포함된 문자의 종류와 개수만 같다면 순서나 대소문자가 달라도 true를 반환해야 합니다. 이를 구현하는 대표적인 방법 두 가지를 살펴보겠습니다. 방법 1: 배열로

  6. JavaScript로 구현하는 이진 탐색(Binary Search) 프로그램

    이진 탐색은 정렬된 배열에서 원하는 값을 효율적으로 찾아내는 대표적인 알고리즘입니다. 매 단계마다 탐색 범위를 절반으로 줄여나가기 때문에 시간 복잡도가 O(log n)으로, 배열의 크기가 클수록 선형 탐색에 비해 압도적인 성능 차이를 보입니다.binarySearch() 함수 설계먼저 binarySearch()라는 함수를 만들어 보겠습니다. 이 함수는 다음과 같이 4개의 인자를 받습니다.정렬된 숫자 또는 문자열 리터럴 배열배열의 시작 인덱스 (0)배열의 끝 인덱스 (length - 1)검색할 값(숫자)함수의 작동 방식은 다음과 같습니

  7. JavaScript로 배열의 인접한 두 요소 간 절대 차이 구하는 방법

    숫자 리터럴로 이루어진 배열이 주어졌을 때, 배열에서 서로 인접한 두 요소의 절대 차이(absolute difference)를 계산하여 새로운 배열로 반환하는 함수를 작성해야 하는 경우가 있습니다.예를 들어 다음과 같습니다.입력 배열: [23, 53, 66, 11, 67]출력 결과: [30, 13, 55, 56]즉, 첫 번째와 두 번째 요소의 차이(|53 - 23| = 30), 두 번째와 세 번째 요소의 차이(|66 - 53| = 13)처럼 각 인접 쌍의 차이를 순서대로 담은 배열이 결과가 됩니다.구현 방법이 문제는 반복문 하나면

  8. 자바스크립트로 서로 다른 숫자 2개 이하를 포함하는 배열의 최대 슬라이스 찾기

    배열을 입력받아, 서로 다른 숫자가 최대 2개까지만 포함된 가장 긴 부분 배열(슬라이스)을 반환하는 함수를 작성해야 한다고 가정해 보겠습니다. 이 문제를 자세히 살펴보면, 안정적인(stable) 하위 배열을 검사하면서 원본 배열을 순회하는 방식으로 접근해야 함을 알 수 있습니다.이러한 유형의 문제에는 슬라이딩 윈도우(Sliding Window) 알고리즘이 특히 적합합니다. 윈도우의 시작점(start)과 끝점(end)을 조절하면서 조건을 만족하는 구간을 효율적으로 탐색할 수 있기 때문입니다. 슬라이딩 윈도우 알고리즘으로 이 문제를 해

  9. JavaScript로 문자를 알파벳 위치 번호로 변환하는 방법

    이번 글에서는 문자열을 입력받아 공백을 제거하고 소문자로 변환한 뒤, 각 문자에 해당하는 영어 알파벳의 위치 번호를 담은 배열을 반환하는 함수를 작성해 보겠습니다. 이때 문자열 안에 포함된 공백이나 특수문자는 무시해야 합니다.예시예를 들어 다음과 같이 동작합니다.입력 → Hello world! 출력 → [8, 5, 12, 12, 15, 23, 15, 18, 12, 4]Hello world!라는 문자열에서 각 알파벳이 알파벳 순서상 몇 번째 위치에 있는지 계산한 결과입니다. H는 8번째, e는 5번째, l은 12번째인 식으로 매핑되며

  10. JavaScript 객체 배열에서 중복 객체 제거하기

    배열에 담긴 객체들 중에서 중복된 객체를 제거하고, 중복이 없는 새로운 배열을 반환하는 함수를 작성해야 하는 경우가 종종 있습니다. 이때 두 객체가 키(key)의 개수가 같고, 키의 이름이 동일하며, 각 키에 대응하는 값까지 모두 일치할 때 서로 중복된 것으로 판단합니다.해결 방법가장 간단하고 직관적인 방법은 JSON.stringify()를 활용하는 것입니다. 각 객체를 문자열로 직렬화한 뒤 이를 맵(map)의 키로 사용하여 이미 등장한 객체인지 확인합니다. 처음 보는 객체라면 새 배열에 추가하고, 이미 존재하는 객체라면 건너뛰는

  11. JavaScript에서 문자열의 모든 단어 앞에 특정 문자를 추가하는 방법

    JavaScript로 프로그래밍을 하다 보면 문자열의 각 단어 앞에 특정 기호나 텍스트를 붙여야 하는 경우가 종종 있습니다. 예를 들어 해시태그를 만들거나, 특수한 형식의 데이터를 처리할 때 유용하게 활용할 수 있습니다.이번 글에서는 두 개의 문자열을 인자로 받아, 첫 번째 문자열의 모든 단어 시작 부분에 두 번째 문자열을 추가한 새로운 문자열을 반환하는 함수를 작성해 보겠습니다.문제 정의예를 들어 다음과 같이 동작하는 함수가 필요합니다.입력 → hello stranger, how are you, @@ 출력 → @@hello @@s

  12. JavaScript로 배열의 처음 n%만 추출하는 방법

    JavaScript 개발을 하다 보면 배열의 일부분, 즉 전체 길이의 특정 퍼센트에 해당하는 요소들만 필요한 경우가 종종 있습니다. 이번 글에서는 배열과 0부터 100 사이의 숫자 n을 인자로 받아, 해당 배열의 처음 n%에 해당하는 부분을 반환하는 함수를 작성해 보겠습니다.요구 사항 정리함수의 동작 방식은 다음과 같습니다.두 번째 인자가 0이면 빈 배열을 반환합니다.두 번째 인자가 100이면 배열 전체를 반환합니다.두 번째 인자가 50이면 배열의 절반을 반환합니다.두 번째 인자가 제공되지 않으면 기본값으로 50을 사용합니다.구현

  13. JavaScript에서 중첩 배열의 각 하위 배열 평균 구하기

    숫자로 이루어진 배열들의 배열(2차원 배열)을 입력받아, 각 하위 배열의 평균값을 담은 새로운 배열을 반환하는 getAverage() 함수를 작성해 보겠습니다.구현 방법핵심 아이디어는 간단합니다. 원본 배열에 map()을 사용하여 각 하위 배열을 순회하고, reduce()를 활용해 하위 배열의 요소들을 합산하여 평균을 계산하는 것입니다.예제 코드const arr = [[1,54,65,432,7,43,43, 54], [2,3], [4,5,6,7]]; const secondArr = [[545,65,5,7], [0,0,0,0], []]

  14. JavaScript reduce로 undefined·null 값을 제외한 배열 합계 구하기

    실무에서 숫자 배열을 다루다 보면 undefined나 null 같은 값이 섞여 있는 경우가 종종 있습니다. 이럴 때 배열을 인자로 받아 undefined와 null 값을 무시하고, 나머지 숫자들의 합계만 깔끔하게 반환하는 함수를 만들어야 할 필요가 생깁니다.해결 방법: reduce 활용하기JavaScript의 reduce() 메서드를 사용하면 이 문제를 매우 간단하게 해결할 수 있습니다. 핵심 아이디어는 누적값에 더하기 전, 현재 값이 유효한 숫자인지 확인하는 것입니다.(val || 0) 표현식을 사용하면 값이 null, undef

  15. 자바스크립트 객체에서 특정 타입의 속성 제거하기

    이번 문제에서는 숫자, 불리언, 문자열, 그리고 객체 자체 등 다양한 타입의 속성을 무작위로 포함하고 있는 객체가 하나 주어집니다.우리가 작성해야 할 함수는 첫 번째 인수로 객체를, 두 번째 인수로 문자열을 받습니다. 두 번째 인수에는 number, string, object, boolean, symbol 등 자바스크립트의 모든 데이터 타입 이름이 올 수 있습니다.문제의 요구 사항함수의 핵심 과제는 두 번째 인수로 지정된 타입과 일치하는 모든 속성을 객체에서 삭제하는 것입니다. 만약 두 번째 인수가 전달되지 않았다면, 기본값으로 n

  16. 곱셈 연산자 없이 JavaScript로 두 수의 곱 구하는 방법

    두 개의 숫자를 입력받아 그 곱을 반환하는 함수를 작성하되, 곱셈 연산자(*)는 사용하지 않아야 하는 상황을 가정해 보겠습니다. 얼핏 어려워 보이지만, 수학적 성질을 활용하면 의외로 간단하게 해결할 수 있습니다. 대표적인 두 가지 방법을 소개합니다.방법 1: 나눗셈 연산자를 두 번 활용하기곱셈과 나눗셈은 서로 역연산 관계입니다. 따라서 어떤 수를 다른 수의 역수로 나누면, 결과적으로 두 수를 곱한 것과 같은 효과를 얻을 수 있습니다.수식으로 표현하면 다음과 같습니다.a / (1 / b) = a × b코드로 구현하면 아래와 같습니다.

  17. JavaScript에서 객체 키와 값 뒤집기 – 역방향 객체 매핑 구현 방법

    JavaScript에서 객체의 키(key)와 값(value)을 서로 뒤바꾸는 역방향 매핑(reverse mapping)이 필요한 경우가 종종 있습니다. 이번 글에서는 객체를 인자로 받아, 원래 객체의 값이 키가 되고 키가 값이 되는 새로운 객체를 반환하는 reverseObject() 함수를 작성해 보겠습니다.접근 방법은 간단합니다. Object.keys()로 원본 객체의 모든 키를 순회하면서, 기존의 키-값 쌍을 새 객체에는 값-키 쌍으로 저장하는 것입니다.여기서 한 가지 주의할 점은, 서로 다른 키가 같은 값을 가질 수 있다는 것

  18. JavaScript 객체에 배열의 모든 키가 포함되어 있는지 확인하는 방법

    두 개의 인수를 받는 containsAll() 함수를 작성해야 합니다. 첫 번째 인수는 객체(object)이고, 두 번째 인수는 문자열 배열입니다. 이 함수는 객체가 배열에 문자열로 명시된 모든 속성(key)을 포함하고 있는지 여부에 따라 불리언(true/false) 값을 반환합니다.그럼 코드를 작성해 보겠습니다. 핵심 로직은 간단합니다. 배열을 순회하면서 각 요소가 객체의 키로 존재하는지 하나씩 확인하고, 객체의 키가 아닌 문자열을 발견하면 즉시 반복을 중단하고 false를 반환합니다. 모든 요소가 존재한다면 최종적으로 true를

  19. JavaScript 문자열 빈도수 계산하기 – 대소문자 구분 없이 문자 개수 세기

    문자열이 주어졌을 때, 각 문자가 몇 번 등장했는지 그 빈도수를 반환하는 함수를 작성해야 한다고 가정해 보겠습니다. 이때 중요한 조건은 문자의 대소문자를 구분하지 않는다는 점입니다.즉, A와 a는 서로 다른 문자가 아니라 동일한 문자로 취급되어야 하며, 두 경우 모두 하나의 키에 합산되어 집계되어야 합니다.접근 방법이 문제를 해결하는 가장 효율적인 방법은 다음과 같습니다.문자열 전체를 toLowerCase() 메서드로 소문자화하여 대소문자 차이를 제거합니다.문자열을 한 글자씩 순회하면서 객체에 문자를 키(key)로, 등장 횟수를 값

  20. JavaScript 배열에서 임의의 항목을 하나씩 제거하고 배열이 빌 때까지 반복하기

    문자열 또는 숫자 리터럴로 이루어진 배열이 주어졌을 때, 배열을 인자로 받아 항목이 남아 있는 동안 매번 임의의 요소를 하나씩 제거하면서 동시에 콘솔에 출력하는 함수 removeRandom()를 만들어야 합니다.이 작업은 Math.random()으로 임의의 난수를 생성한 뒤, 해당 인덱스의 요소를 Array.prototype.splice()로 제거하고 출력하는 과정을 배열의 길이가 0이 될 때까지 반복하는 방식으로 구현할 수 있습니다.구현 예제 { while(array.length){ const random = M

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