우주먼지 개발 log

[TIL] 23/10/20 javascript : 버튼타입, 문자열곂쳐쓰기 본문

TIL(Today I Learned)

[TIL] 23/10/20 javascript : 버튼타입, 문자열곂쳐쓰기

개발자먼지 2023. 10. 20. 20:22
반응형

📢 오늘 리뷰

더보기

🎀 한 일

[강의]
5주차 class / closer 강의 다들음

[알고리즘]

오늘의 알고리즘 3문제 품

 

[개인과제]

어제 퇴근 후 git 녹화강의 다 봄

repository만 만들고, 거의 파일생성만해서 커밋올려놓음.

과제 설명서 확인 함

오늘 뭐 좀 할 줄 알았는데 한줄 쓰고 강의자료 다시 보러감.

예전 숙제 참고해서 html만 몇 줄 더 씀.

 

[한눈팔이..]

갑자기 내 티스토리 블로그 스킨 로그인 오류가

왠지 여태 배운걸로 해결이 될 것 같아서 꽂혀서 보다가 과제  못함!

어떤 개발자가 배포한 스킨인데

가비아 계정 주소로 들어가면 게스트인것 처럼 나옴.

티스토리 계정 주소로 들어가면 로그인 된걸로 나옴.

여튼... 이것도 공부가 되었..음..

근데 페이지의 검사로 본 html과 스킨에서 수정할 수 있는 html 파일이 달라서 멘붕왔음.

숙제나 해야지!!!!

 

🎁 할 일 / 부족한 점

과제 집중!

javascript에서 정규식표현도 잘 쓰는 것 같은데 한번 봐야할 듯-_-

 

 

✨ TIL

1) 버튼 타입

숙제 세줄 쓰는 와중에  <button type=submit>
예시 페이지에 type을 저렇게 써놨길래 배웠는지 안배웠는지 여튼 기억이 안나서 찾아봄.

버튼에 타입을 쓰는 이유 (button type="button") :: nana_log (nykim.work)

덜 읽었는데, 대충 submit 이면 새로고침 된다는 것 같다.

과제에서는 submit 해주는게 맞는 것 같긴함.

근데 default가 submit 이라고 해서 안써줘도 될 것 같다. 아직안해봄..
(이렇게 한줄 한줄 모르는 거 찾아보다가 어느세월에 숙제 다함?)

 

2) 문자열 / 배열 메소드

(오늘도 문자열 공부만 신나게 함. 나중에 모아서 잘 정리해 두기...)

 

오늘의 요주의 알고리즘 문제 : 문자열 겹쳐쓰기

 

동료의 Good 풀이 :

문자열을 배열로 바꿔서 배열 메소드 이용하고, 다시 문자열로 바꿔주기!

function solution(my_string, overwrite_string, s) {
    let answer = [...my_string]; //['H', 'e', '1', '1','o', 'W', 'o', 'r','1', 'd']
    answer.splice(s, overwrite_string.length, overwrite_string) //[ 'H', 'e', 'lloWorl', 'd' ]
    return answer.join(''); //"HelloWorld" 를 리턴
}

사용한 메소드 : 배열 메소드 splice

array.splice(인덱스, 삭제할 갯수, "대체문자열1", "대체문자열2"...);

  • 삭제할 갯수가 0이면 추가만 하는 것도 가능
  • 대체문자열이 없으만 삭제만 하는 것도 가능

 

내 Bad 풀이 :

문자열을 substr로 잘라서 문자열 대체 replace 메소드 이용. 

접근은 좋았던 것 같은데 replace가 문자열 대체시 인덱스 지정을 못해서 문제점이 있음. 

그리고 mdn문서에서 substr 이제 쓰지말라고 함!

function solution(my_string, overwrite_string, s) {
    var answer = '';

    let slicedString = my_string.substr(s, overwrite_string.length); // "lloWorl"
    
    answer = my_string.replace(slicedString, overwrite_string);
    return answer;
}

문제가 되는 반례 : 

입력값 : "aaaaaa", "bbb", 3
기댓값 : "aaabbb"
replace가 앞에서부터 찾아서 바꿔주니까 "bbbaaa" 가 나옴.

 

사용한 문자열 메소드 : replace(), slice()

문자열 대체 replace
let str = "Hello, world!";
let result = str.replace("world", "JavaScript");
console.log(result); // "Hello, JavaScript!"

문자열 자르기 slice
let str = "Hello, world!";
console.log(str.substr(7, 5)); // "world"
console.log(str.slice(7, 12)); // "world"

 

substr을 사용하면 안된다고 하니까 그 대신에는 substring() 을 쓰면 될 것 같음.

String.prototype.substring() - JavaScript | MDN (mozilla.org)

 

 

반응형