묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결제주코딩베이스캠프 Code Festival: JavaScript 100제
이렇게 하는건 안좋은 방법일까요?
저는 이렇게 풀어봤습니다..!! 3등이 여러명 추가 되어도 답 잘나옵니다.. 혹시 이것은 원본값인 arr을 바꾸기 때문에 안좋은 방법일까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
let newImages 및 splice() 질문 + 삭제질문
선생님 안녕하세요, new images에 질문이 있습니다~ 1. let newImages = [...images]; newImages.splice(currentIdx, 1); setImages(newImages); 선생님이 써 주신 상단의 원래코드에서 let newImages = [...images].splice(currentIdx, 1); setImages(newImages); 이렇게 줄일 수 있지 않을까 싶어 저렇게 코드를 짰더니반대로 클릭한 것만 남고 나머지가 사라지더라구요. 찾아보니까 splice()를 하면 삭제한 값이 return되는 것 같은데, 리턴한 값으로(=즉 내가 클릭한 인덱스) images가 새롭게 정의되어서 그런게 맞나요??? 그렇다면 원래 코드와의 차이는 미리 선언을 하고 이후에 splice()를 하느냐 아니냐인 것인데, 선언을 먼저한 배열은 리턴 값이 아닌, 이미 선언되었던 배열이라 splice로 삭제된 값만 남고, 리턴 값은 그대로 리턴이 되는건가요?.. 정리하자면 1. 배열 선언 먼저 -> 선언된 배열에서 splice함 -> 삭제한 idx제외하고 배열에 남음 -> 배열은 배열대로 남아있고 삭제한 값은 리턴으로 출력할수잇음(?) 2. 배열 선언과 splice 동시 -> 배열을 splice한 return값이 배열로 선언됨 -> 나머지값은 그냥 없어짐(?).. 이게 맞나요....???? 대충 감은 알겠지만 확실한 차이를 잘 몰라서 질문드립니다 ㅜ... 제 질문을 부디 이해하셨으면 ....! 참고용으로 테스트했던 콘솔이미지 첨부드려요! 2. 추가질문 images.splice(currentIdx, 1); setImages([...images]); 이렇게도 시도해봤는데 원래 코드와 똑같이 동작하더라구요.newImages 배열을 새로 만들어 사용하는 이유는 원본은 그대로 두고 객체(?)처럼 쓰려고 하신게 맞는건가요?? 3. 밑에 다른 분 질문에서 서버 사진 삭제관한 질문인데요 ----------- 파일 삭제는 노드 부분에서 const fs = require('fs') const path = 'yourPath(경로)' try { fs.unlinkSync(path) } catch(err) { console.error(err) } ---------- 이렇게 답변 주셨었는데 노드부분은 혹 production.js를 말하는건가요?좀 더 자세히 알려주시면 감사드리겠습니다.. :) 답변 기다리겠습니다~ 고맙습니다!~!