JavaScript에서 중첩(nested) 객체 안에 있는 특정 값이 어느 키에 속하는지 찾아야 할 때가 있습니다. 이 글에서는 for...in 루프와 includes() 메서드를 활용하여 중첩 객체에서 원하는 키 값을 추출하는 방법을 알아보겠습니다.중첩 객체 생성하기먼저 예제에 사용할 중첩 객체를 생성합니다.var details = { teacherDetails: { teacherName: [John, David] }, subjectDetails: { subjectN
JavaScript에서 객체에 새로운 속성을 추가하거나 기존 속성 값을 변경하는 것을 막고 싶다면 freeze() 메서드를 활용할 수 있습니다.Object.freeze()는 객체를 동결(freeze) 상태로 만들어 주는 내장 메서드입니다. 한 번 동결된 객체에는 다음과 같은 제약이 적용됩니다.새로운 속성을 추가할 수 없습니다.기존 속성을 삭제할 수 없습니다.기존 속성의 값을 변경할 수 없습니다.예제 코드아래 코드에서는 Object.freeze()를 사용한 후 value1의 값을 100으로 변경하려고 시도합니다. 하지만 객체가 이미
개요배열 안에서 특정 조건에 일치하는 항목을 찾아 새로운 값을 할당하려면 filter()와 map() 메서드를 함께 사용하면 됩니다. 이 두 메서드를 조합하면 별도의 반복문(for, while 등) 없이도 간결하고 가독성 높게 원하는 작업을 처리할 수 있습니다.먼저 다음과 같은 학생 정보 배열이 있다고 가정해 보겠습니다.const studentDetails = [ {Name: John}, {Name: David}, {Name: Bob},&nb
JavaScript로 개발을 하다 보면 한 객체의 속성을 다른 객체로 복사하되, 이미 존재하는 키는 그대로 유지해야 하는 경우가 자주 발생합니다. 이럴 때 hasOwnProperty() 메서드를 활용하면 간단하게 해결할 수 있습니다.문제 상황다음과 같이 두 개의 객체가 있다고 가정해 보겠습니다.var first = {key1: 100, key2: 40, key3: 70} var second = {key2: 80, key3: 70, key4: 1000}여기서 목표는 second 객체의 속성을 first 객체에 추가하는 것입니다. 단,
JavaScript의 null 병합 연산자네, JavaScript는 이제 null 병합(nullish coalescing) 연산자(??)를 공식적으로 지원합니다. 이 연산자는 값이 null 또는 undefined일 때만 오른쪽 값을 반환합니다.그 전에 널리 사용되던 방식은 논리 OR(||) 연산자를 활용하는 것입니다. 왼쪽 값이 falsy(거짓으로 평가되는 값)일 경우 오른쪽의 실제 값을 대신 사용하는 방식입니다.기본 문법var anyVariableName = null;var anyVariableName = yourVariableN
JSON 데이터에서 배열을 생성하려면 JavaScript의 map() 메서드를 활용하는 것이 가장 효과적입니다. map()은 배열의 각 요소를 순회하면서 콜백 함수의 반환값으로 새로운 배열을 만들어 주기 때문에, 객체 배열에서 특정 속성값만 추출할 때 특히 유용합니다.예제 데이터예를 들어 다음과 같은 학생 정보가 담긴 JSON 데이터가 있다고 가정해 보겠습니다.const studentDetails = [ { name: John }, { name: David }, { name: Bob } ];이 데이터에서 학생 이름만 추출
JavaScript에서 두 객체 배열을 비교하면서 특정 속성(예: amount)을 기준으로 필터링하고 싶다면 map() 메서드와 삼항 연산자(? :)를 함께 활용하면 간단하게 해결할 수 있습니다.먼저 다음과 같이 두 개의 고객 정보 객체 배열이 있다고 가정해 보겠습니다.let firstCustomerDetails = [ {firstName: John, amount: 100}, {firstName: David, amount: 50}, &n
두 개의 배열이 있을 때, 특정 속성을 기준으로 더 높은 값을 가진 객체만 골라내고 싶다면 reduce() 메서드를 활용하면 됩니다. 핵심은 각 배열에 개별적으로 reduce()를 적용하고, 첫 번째 결과를 두 번째 reduce()의 초기값으로 전달하는 것입니다. 이렇게 하면 concat()으로 배열을 합치지 않고도 원하는 결과를 얻을 수 있습니다.예제 데이터예를 들어, A반과 B반 학생들의 이름과 점수 정보가 다음과 같이 담겨 있다고 가정해 보겠습니다.var sectionAStudentDetails = [ {studentNam
문자열에서 콜론(:) 다음에 오는 첫 글자만 대문자로 바꾸고 싶다면 정규식(Regex)과 toUpperCase() 메서드를 함께 활용하면 됩니다.toUpperCase()는 문자열 전체를 대문자로 변환하기 때문에, 이대로 사용하면 원하는 결과를 얻을 수 없습니다. 따라서 정규식을 이용해 콜론 뒤의 첫 글자만 골라서 대문자로 변환해야 합니다.예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.var objectValues=fullName: john Smith;콜론 뒤 첫 글자만 대문자로 변환하는 코드아래는 콜론 뒤의 첫 글자만 대
JavaScript에서 배열에 담긴 모든 숫자의 합계를 구하려면 for 루프를 활용할 수 있습니다. 기본 원리는 간단합니다. 먼저 합계를 저장할 변수를 0으로 선언하고 초기화한 뒤, 배열 전체를 반복하면서 각 요소의 값을 하나씩 꺼내어 합계 변수에 계속 더해주는 것입니다.예제 배열다음과 같이 숫자로 이루어진 배열이 있다고 가정해 보겠습니다.var listOfValues = [10, 3, 4, 90, 34, 56, 23, 100, 200];for 루프로 합계 구하기아래 코드는 for 루프를 사용해 배열의 모든 값을 더하는 예제입니다.
JavaScript에서 시작 값부터 끝 값까지 범위 내의 모든 숫자를 표시하고 싶다면 for 루프를 활용하면 됩니다. 이번 글에서는 예제 코드와 함께 그 방법을 살펴보겠습니다.먼저 시작 값이 다음과 같다고 가정해 보겠습니다.var startValue=10;그리고 끝 값은 다음과 같습니다.var endValue=20;for 루프를 사용하면 시작 값과 끝 값 사이의 숫자들을 손쉽게 가져올 수 있습니다. 루프를 돌면서 각 숫자를 문자열 변수에 이어 붙인 후, 마지막 slice(0, -1) 메서드를 통해 불필요한 마지막 쉼표(,)를 제거해
HTML 문서에서 같은 클래스를 가진 여러 요소를 한 번에 다뤄야 할 때는 document.getElementsByClassName() 메서드를 사용하는 것이 올바른 방법입니다. 이 메서드는 Document 인터페이스에 속해 있으며, 지정한 클래스 이름을 가진 모든 요소를 HTMLCollection 객체로 반환합니다.반환된 HTMLCollection은 배열처럼 인덱스로 접근할 수 있기 때문에, 일반적인 for 반복문을 사용해 각 요소를 순서대로 처리할 수 있습니다. 아래 예제는 demo라는 클래스를 가진 div 요소들을 반복하면서
JavaScript 배열에서 0, undefined 및 빈 값()처럼 거짓 같은(falsy) 값을 제거하려면 splice() 메서드를 활용해야 합니다. splice()는 배열의 특정 위치에서 요소를 삭제하거나 교체할 수 있는 강력한 내장 메서드입니다. 예를 들어 다음과 같은 배열이 있다고 가정해 보겠습니다. var allValues = [10, false, 100, 150, , undefined, 450, null] for 루프와 splice()를 활용한 예제 다음은 for 루프와 splice()를 함께 사용하여 거짓 같은 값을 모
JavaScript에서 객체의 키 값을 수정하려면 정규식(Regular Expression)과 Object.fromEntries() 메서드를 함께 활용해야 합니다.이 방법은 객체의 각 키에 포함된 밑줄(_)을 찾아 제거하고, 밑줄 바로 뒤에 오는 문자를 대문자로 변환하여 카멜 케이스(camelCase) 형태로 만들어 줍니다.구현 예제먼저 정규식을 사용해 문자열 내의 밑줄과 그 뒤 문자를 처리하는 화살표 함수를 정의합니다. 이후 Object.entries()로 객체를 배열 형태로 변환한 뒤, map()으로 키를 가공하고, 최종적으로
JavaScript에서 배열 요소 내부에 false 값이 포함되어 있는지 확인해야 하는 경우가 종종 있습니다. 예를 들어 고객 정보 객체 배열에서 특정 조건(결혼 여부 등)이 거짓인 항목이 존재하는지 검사할 때 유용합니다.이럴 때 Object.values() 메서드와 some() 메서드를 함께 사용하면 간단하게 확인할 수 있습니다.Object.values()와 some()의 역할Object.values(): 객체가 가진 값들을 배열 형태로 반환합니다.some(): 배열의 요소 중 하나라도 조건을 만족하면 true를, 그렇지 않으면
JavaScript에서 사용자가 입력한 값이 숫자인지 문자(숫자가 아닌 값)인지 확인하려면 isNaN() 함수를 활용하면 됩니다. isNaN은 is Not a Number의 약자로, 전달받은 값이 NaN(Not a Number, 숫자가 아님)일 경우 true를 반환합니다. 즉, isNaN()의 결과가 true라면 해당 값은 숫자가 아니라는 의미입니다.예제 코드<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q
두 개 이상의 링크나 요소에 onclick 이벤트가 제대로 작동하지 않는 경우가 종종 있습니다. 이런 문제를 해결하려면 JavaScript의 document.querySelectorAll() 메서드를 사용하는 것이 좋습니다.querySelectorAll()은 지정한 선택자와 일치하는 모든 요소를 NodeList 형태로 반환합니다. 따라서 forEach() 같은 반복문을 사용해 각 요소에 개별적으로 접근하고 처리할 수 있으며, 동일한 클래스를 가진 여러 요소를 한 번에 제어할 때 특히 유용합니다.예제 코드<!DOCTYPE htm
JavaScript에서 폼(form) 제출 시 입력 필드의 값을 변경하려면 document 객체를 활용하면 됩니다. 기본 문법은 다음과 같습니다.document.yourFormName.yourTextName.value=anyValue;즉, document 객체를 통해 폼 이름과 입력 요소의 name 속성에 접근한 뒤, 원하는 값을 할당하면 됩니다.폼 구성 예시예를 들어, Submit Form 버튼을 클릭했을 때 submitForm() 함수가 호출되는 다음과 같은 입력 폼이 있다고 가정해 보겠습니다.<form name="
배열 앞부분에 위치한 0(선행 0)만 제거하고 싶다면 filter() 메서드를 활용하면 됩니다. filter()는 주어진 조건을 통과한 요소들만 모아 새로운 배열을 반환하는 자바스크립트 배열 메서드로, 이 문제에서 핵심적인 역할을 합니다.적용 대상 입력 배열아래와 같은 입력 배열에서 맨 앞에 연속된 0만 제거하고, 그 뒤에 등장하는 0은 그대로 유지해 보겠습니다.[10, 0, 12, 0, 0][0, 0, 0, 0, 0, 0, 10, 12, 0][12, 0, 0, 1, 0, 0]예제 코드const removeLeadingZero =
JavaScript에서 객체의 속성을 조건부로 변경하려면 논리 AND 연산자(&&)를 활용할 수 있습니다.논리 AND 연산자는 두 개의 피연산자가 모두 참(참으로 평가되는 값)일 때만 전체 조건이 참이 됩니다. 이 특성을 이용하면 특정 조건이 충족될 때만 새로운 속성 값을 객체에 병합하도록 만들 수 있습니다.동작 원리스프레드 연산자(...)와 함께 논리 AND를 사용하면 다음과 같은 방식으로 동작합니다.조건이 false인 경우: false && {...}는 false로 평가되며, 스프레드 연산자는 fal