JS 배열 조작 단점

5264 단어 javascriptbeginners
이전 게시물에서 필기 답변으로 문제 해결을 연습했다고 언급했습니다. IDE나 화물 프로그래밍보다 훨씬 오래 걸리지만 JS 방법에 대한 많은 오해를 밝혀줍니다.

1 슬라이스()와 splice()의 차이점


.slice()는 배열 항목을 새 배열로 추출합니다[0, n-1]..splice()[0, n] 위치에서 항목을 삭제하고 초기 배열 대신 반환하여 원래 배열을 변경합니다. 또한 항목을 추가하기 위한 세 번째 매개변수도 제공합니다.

이는 함수형 프로그래밍 관점에서 more thoroughly herehere 설명됩니다.

2 단순히 문자열을 반복할 수는 없습니다.



빈 문자열로 .split('')를 적용하거나 [...](확산 연산자)를 적용하면 불연속 문자 배열이 반환됩니다.

예외: for 루프에서 charAt() 사용



Ryan Lynch (he/him)








좋은 점! for 루프를 사용하여 문자열을 직접 반복하여 각 인덱스의 문자에 액세스할 수 있습니다!

function forEachChar(str, cb) {
   for (let i = 0; i < str.length; i++) {
      cb(str.charAt(i))
   }
}






3 스프레드 연산자는 얕은 복사본을 생성합니다.



복사할 어레이의 깊이가 한 수준 이상인 경우 [...spread] . 얕은 복사본에서 중첩 배열(또는 개체)은 원본 복사본에 대한 참조를 유지합니다. 모든 변경 사항은 초기 및 후속 복사에 영향을 미칩니다.

얕은 복사 및 깊은 복사는 Laurie Barth에서 자세히 설명합니다.

4 for (i of ...) vs for (i in ...)



전자는 배열, 문자열, DOM 노드 컬렉션, 맵, 세트 및 생성기에 대한 반복을 가능하게 합니다. 후자는 키와 같은 개체 속성을 반복합니다. for...of vs for...in

5 .join() 대 .push() 대 .concat()



.push()는 배열을 변경하고 길이 끝에 항목을 추가합니다.
.concat()은 배열을 병합하고 .join()보다 빠르게 실행됩니다.

6 내가 좋아하는 것 중 일부는 문제가 있습니다. 배열을 변경합니다.



shift() , unshift() , splice() , pop() , push()reduce() filter() , map() , some()concat() 와 같이 상태를 변경하지 않는 대안을 찾는 것이 이제 취미가 되었습니다.

7 find() 대 필터()


find() 컬렉션에서 일치하는 첫 번째 값을 반환하고 for 루프에 넣지 않는 한 중지합니다. filter()는 일치하는 값의 배열을 반환합니다.

8 forEach는 무효 함수입니다.



MDN 문서를 읽었을 때 명확하지 않았고 블로그에서 원래 배열을 변경한다는 두 가지 주장이 있는 것 같았습니다. 그것은 아무것도 반환하지 않으며 DEV 커뮤니티의 도움으로 ❤️ 나는 그것을 발견할 수 있었습니다!

관련 읽기









이 목록에 추가하고 싶은 다른 사람이 있습니까? 알려줘요!

좋은 웹페이지 즐겨찾기