본문 바로가기

자바스크립트/바닐라 JS4

[시간복잡성] indexOf(), hash변환 후 값 추출 코테를 풀다가, indexOf() 를 사용해 시간초과가 나던 부분을 전체 배열을 {배열의 값: index, ...} 형태의 hash로 변환하고 값을 추출하는 식으로 변경해서 풀게 되었다. 그렇다면 시간 차이가 얼마나 나는가. 그리고 배열의 길이가 얼마나 짧아야 indexOf()가 유리할까? 모의 배열을 하나 생성해서, 아래 두 가지의 경우를 조사해본다. 시간 소요는 window.performance.now(); 를 사용해서 구했다. 1.배열.indexOf("문자열") 출력 2. 각 위치를 hash로 전부 변환하고 특정 값의 위치 출력 ( ex. {값1 : 0 , 값2 :1, 값3: 2 ... ) 테스트할 배열은 그냥 for문으로 임의로 만들었다. 길면 길수록 뽑기가 힘들었다.. 실행은 10번 정도를 하고.. 2024. 3. 7.
[바닐라 js] 주민번호 <->생년월일, 성별 변환 //날짜와 성별을 주민번호로 리턴 export function rsnum(birth="2000-01-01", gender="1"){ return birth[2]+birth[3]+birth[5]+birth[6]+birth[8]+birth[9]+"-"+gender; } //주민번호를 날짜,성별 배열로 리턴 export function getbirth(rsnum="000000-0"){ let birth =""; let gender = rsnum[7]; if(Number(gender)>=3){ birth="20"; }else{ birth="19"; } birth = birth+rsnum[0]+rsnum[1]+"-"+rsnum[2]+rsnum[3]+"-"+rsnum[4]+rsnum[5] let answ = [bi.. 2023. 1. 14.
폼 유효성 검사 - 모듈로 초간단하게 작성 인풋 값이 비어 있으면 안되거나, 특정 형태를 가지고 있어야 할 때 javaScript로 유효성 검사를 해서 안내문을 띄우도록 합니다. 이 기능을 하나하나 등록해서 사용하기보단 외부 모듈화 해서 onkeyup 등에 적용하는게 간단합니다 ^_^ 필수 입력 구간 안내하기 function formValidation(idlist=[""]) { try{ for(let i of idlist){ let val = document.getElementById(i).value; if (val == undefined || val.length == "" || val == "false") { document.getElementById("ck"+i).classList.add("zchkform"); document.getEleme.. 2023. 1. 14.
날짜, 시간 관련 자바스크립트 함수들 프로젝트 하면서 만들어 사용했던 날짜와 시간 관련 자바스크립트 함수들을 공유합니다. 사용법을 함께 적어두니 외부 모듈처럼 사용하세요 ^_^ // 날짜관련 모듈 const days = ['일요일','월요일','화요일','수요일','목요일','금요일','토요일']; const daysE = ['sun','mon','tue','wed','thu','fri','sat']; export const Alldays = [['월요일','mon'],['화요일','tue'],['수요일','wed'],['목요일','thu'],['금요일','fri'], ['토요일','sat'],['일요일','sun'],['공휴일','pbhl']]; //작성일자 등이 최신(7일 이내)인지 확인 //strToDate('2022-05-01') e.. 2023. 1. 14.
728x90