728x90
반응형
- [ 언어·프레임워크/JavaScript ][JavaScript] Uncaught (in promise) TypeError: 데이터.forEach is not a function 에러2024-09-06 16:50:31Uncaught (in promise) TypeError: filteredFacilities.forEach is not a function 에러는 데이터가 배열이 아닌 다른 타입(예: undefined 또는 null)이어서 발생하는 에러이다. forEach는 배열에서만 사용 가능한 메서드이기 때문에, 데이터가 배열이 아닐 경우 이 오류가 발생한다.해결 방법은 아래 코드와 같이 isArray() 배열 메서드를 이용해 데이터가 배열 타입인지 확인하고 배열이 아니면 빈 배열([])이 평가되도록 한다.const result = Array.isArray(arr) ? arr : [];
- [ CS/자료구조와 알고리즘 ][자료구조와 알고리즘] 유데미 강의 "JavaScript 알고리즘 & 자료구조 마스터클래스" 정리(섹션 17: 기수 정렬)2024-05-21 23:10:55섹션 17: 기수 정렬버블, 선택, 삽입, 합병, 퀵 정렬은 비교 정렬에 속한다. 반면 기수 정렬은 정렬할 숫자를 비교하지 않고 bucket이라는 10개의 배열(0~9)에 담았다가 병합하는 방식으로 정렬한다. 이렇게 bucket에 담았다가 병합하는 과정은 정렬할 숫자의 최대 자릿수만큼 일어난다. // 자릿수에 해당하는 숫자 반환function getDigit(num, i) { return Math.floor(Math.abs(num) / Math.pow(10, i) % 10);}// 숫자의 자리수 세기function digitCount(num) { if (num === 0) return 1; // log 계산은 지수와 밑이 같으면 1이다. // 지수가 10이기 때문에 두자리 수인 10..
- [ 언어·프레임워크/JavaScript ][JavaScript] filter(), some() 배열 메서드를 이용해 두 배열 간 일치하지 않는 객체 요소 구하기2024-02-21 09:25:591. 두 배열에서 일치하지 않는 객체 요소 구하기 const arr1 = [{ id: 1, name: "a" }, { id: 2, name: "b" }]; const arr2 = [{ id: 1, name: "a" }, { id: 2, name: "b" }, { id: 3, name: "c" }]; 위와 같이 객체를 요소로 가진 두 개의 배열이 있다. 이 두 배열을 비교해 일치하지 않는 객체 요소인 { id: 3, name: "c" }를 구하고자 한다. 2. filter(), some() 배열 요소 활용한 문제 해결 filter() 배열 메서드는 매개 변수로 true/false를 반환하는 콜백 함수를 가진다. some() 배열 메서드는 ||연산자와 비슷해서 요소 중 하나라도 true이면 true를 반환한..
- [ CS/자료구조와 알고리즘 ][자료구조와 알고리즘] 유데미 강의 "JavaScript 알고리즘 & 자료구조 마스터클래스" 정리(섹션 4: 문제 해결 접근법)2024-01-31 22:14:49섹션 4: 문제 해결 접근법 📌 알고리즘 특정 작업을 달성하기 위한 과정이나 일련의 단계 📌 문제 해결법 1단계 문제의 이해 작업을 수행하면서 어떤 해결책을 마련할지, 애플리케이션이 어떻게 구동되도록 할지, 각 상황에서 어떤 식으로 작동되도록 할지에 대해 확실히 이해한다. 면접관에게 질문을 던져서 문제를 명확히 함으로써 확실히 이해할 수도 있다. 문제 이해는 구체적인 예시를 살펴보는 것과도 관련된다. 2단계 구체적 예시 이 두 가지 단계(문제의 이해, 구체적 예시)는 문제를 이해하고, 입력값과 출력값을 이해하고 경계 조건을 이해하는 것에 관한 것이다. 에러를 어떻게 처리할지, 그리고 사용자가 잘못된 값을 입력하면 어떻게 되는지와 같은 질문들은 처음부터 모든 것이 어떻게 작동해야 하는지를 이해하는 것과 관..
- [ CS/자료구조와 알고리즘 ][자료구조와 알고리즘] 유데미 강의 "JavaScript 알고리즘 & 자료구조 마스터클래스" 정리(섹션 3: 배열과 오브젝트의 성능 평가)2024-01-31 10:28:51섹션 3: 배열과 오브젝트의 성능 평가 📌 객체의 빅오 1. 객체 키, 값의 삽입, 삭제, 접근의 경우 Insertion, Removal, Access → O(1) 2. 객체의 키로 접근하지 않고 값으로 탐색하는 경우 Searching → O(n) 3. 객체 메서드의 빅오 O(n) Object.keys Object.values Object.entries O(1) Object.hasOwnProperty let instructor = { firstName: "김일남", isInstructor: true, favoriteNumbers: [1,2,3,4] } instructor.hasOwnProperty("firstName"); // true 📌 배열의 빅오 1. 배열 앞이나 중간 인덱스에 요소 삽입, 삭제 배..
- [ 언어·프레임워크/JavaScript ][JavaScript] split() 문자열 메서드 이용해 특정 문자열의 개수 구하기2023-12-10 00:08:031. Python의 count() 문자열 메서드 문자열에서 특정 문자열의 개수를 구하고자 한다. Python에는 count() 문자열이 존재하기 때문에 아래 코드와 같이 쉽게 구할 수 있다. # 파이썬 코드 s = "javascript" a_count = s.count('a') # count() 문자열 메서드 이용하여 특정 문자열 개수 구하기 print(a_count) # 2 2. javaScript의 split() 문자열 메서드 응용 JavaScript에는 Python과 같은 메서드가 존재하지 않지만 split() 문자열 메서드를 응용하면 같은 결과를 얻을 수 있다. // 자바스크립트 코드 const s = "javascript"; const aCount = s.split("a").length - 1;..
- [ 언어·프레임워크/JavaScript ][JavaScript] 클로저(Closure) 정리!2023-09-26 00:38:061. 클로저(Closure) 란? 클로저는 함수와 함수가 선언된 렉시컬 스코프(Lexical Scope) 사이의 특별한 관계를 나타내는 개념이다. 함수 내부에서 선언된 함수가 외부 함수의 변수에 접근할 수 있고, 그러한 함수를 클로저라고 한다. 클로저는 외부 함수의 변수에 대한 참조를 "닫아"(Capture)서 나중에 사용할 수 있도록 저장한다. 이로 인해 외부 함수가 종료된 이후에도 해당 변수에 접근할 수 있다. 2. 클로저와 관련한 몇 가지 개념 1) 렉시컬 스코프(Lexical Scope): JavaScript는 함수를 정의할 때 함수 내부에서 외부 스코프에 접근할 수 있도록 스코프를 정의한다. 이 스코프는 함수를 선언할 때 결정되며, 함수가 어떤 변수에 접근할 수 있는지 결정한다. 이러한 스코프 ..
- [ 언어·프레임워크/JavaScript ][JavaScript] 날짜 데이터를 yyyy-MM-dd 형식으로 만들기2023-05-25 15:54:32날짜 정보를 문자열로 변경하되 "yyyy-MM-dd"로 변경하고 싶었다. 파이썬에서 strftime이라는 메소드를 이용하면 간단했던 것이다. 참고로 파이썬 코드는 아래와 같다. import datetime now = datetime.datetime.now() formattedDate = now.strftime("%Y-%m-%d") # 2023-05-25 print(formattedDate) 자바스크립트는 toLocaleDateString 메소드와 정규식을 이용해 구현할 수 있었다. 작성한 코드는 아래와 같다. date // 날짜 정보를 담고 있는 변수 date ?.toLocaleDateString('ko-KR', { year: 'numeric', month: '2-digit', day: '2-digit'..
728x90
반응형