스토리지에 대한 자세한 내용과 자세한 내용을 확인하십시오.지도.
5187 단어 mapcodedeepdivesv8javascript
Array.map
방법을 자주 사용하는 것을 발견했습니다.웹 응용 프로그램을 구축할 때 항상 목록이 실행될 것 같습니다.절선: 컴퓨터 과학의 전체 분야는 관리 사물의 목록에 관한 것이라고 생각하지만, 이것은 또 다른 박문이다.
어떤 유용한 소프트웨어와 마찬가지로, 때로는 그것이 어디에서 왔는지, 어떻게 이렇게 악명 높게 변했는지 잊기 쉽다.나는 이 기회를 빌려 더욱 이해하기로 결정했다
Array.map
.만약 네가 나의 블로그 댓글에 익숙하다면, 너는 이것이 어떻게 된 일인지 알 수 있을 것이다.Array.map
란?Array.map
는 함수로 목록과 리셋을 매개 변수로 하고 새 목록을 되돌려줍니다. 리셋은 원시 목록의 모든 항목에 적용됩니다.좋고 간단해.다음은 목록에 있는 모든 항목의 값을 배로 늘리는 데 사용되는 예시입니다.> const numbers = [0, 1, 2, 3, 4];
> const doubled = numbers.map(function(value) {
return value * 2;
});
> console.log(doubled);
official ECMAScript specification for Array.map에 따라 map
함수에 제공된 리셋은 세 가지 인자를 포함한다. 그것이 바로 반복 순환 중의 현재 값, 이 값의 인덱스와 수조이다.언제 사용해야 합니까
Array.map
?Array.map
는 입력 그룹에서 새로운 출력 그룹을 생성해야 하는 장면에 적용됩니다.입력 그룹을 수정하거나 내용을 되돌려 주지 않는 장면forEach
을 사용하는 것이 좋습니다.나는 내가 자주 남용한다는 것을 인정한다. map
나는 이것이 내가 대부분의 시간을 변할 수 없는 데이터 구조를 처리하는데 그 중에서 데이터를 입력하면 돌변이 일어나지 않기 때문에 map
더 의미 있는 장면에서 사용하는 것에 익숙하다forEach
.지도사
map
는 어떻게 자바스크립트 프로그래밍 언어와 많은 다른 프로그래밍 언어의 일부분이 되었습니까?조금도 이상하지 않다. 그것은 수학에서 기원한다.수학에서 매핑은 하나의 수학 구조의 값을 다른 수학 구조의 값으로 바꾸는 통용 함수이다.1959년에 Lisp프로그래밍 언어의 실현에서 매핑 함수는 수학에서 컴퓨터 과학으로 뛰어넘었다.Lisp에서 최초
map
함수는 mapList
라는 표준 함수에서 실현되었다.새로운 프로그래밍 언어가 등장함에 따라 map
의 실용성은Lisp에서 새로운 언어로 바뀌었다.덮개 아래에 어레이가 있습니다.지도 실현
위에서 ECMAScript 규범을 가리키는 링크는 자바스크립트 엔진이
Array.map
실현에서 예상한 알고리즘에 대한 설명을 제공한다.맵의 V8 구현과 규범 알고리즘에 해당하는 위조 코드를 살펴보기로 했습니다.깊이 있는 연구를 통해 저는 상술한 알고리즘의 다른 부분이 V8 코드 라이브러리에서 발생하는 위치를 추적할 수 있습니다.현재, 나는 C++ 코드를 읽는 데 많은 시간을 들이지 않았고, V8 엔진이 유사한 목록을 나타내는 데이터 구조의 패턴을 나타내는 데도 익숙하지 않다.그럼에도 불구하고 저는 섞여서 표준화 알고리즘의 일부분을 V8의 실현과 연결시킬 수 있습니다.마음대로 정정하거나 댓글에 더 많은 내용을 기입하세요!위조 코드
묘사
구현
O를 객체로 만들기 (이 값)
입력 값을 객체 유형으로 변환합니다.
link
브루프트로 돌아가기 (O)
입력한 값이 정의되지 않았거나 비어 있는 문자열과 같은 '빈' 값인지 확인하십시오.
link
렌을 길게 만들기 (O, "길이")
새 그룹을 만드는 데 사용할 입력 대상의 길이를 가져옵니다.
link
ReturnIfAbrupt(len)
길이가 0이나 비어 있는지 확인하십시오.
IsCallable(callbackfn)가false인 경우 TypeError 예외가 발생합니다.
콜백을 호출할 수 있는지 확인
link
thisArg이 제공된 경우 T는 thisArg입니다.그렇지 않으면 정의할 필요가 없다
콜백 범위 내
this
의 값을 설정합니다(주어진 경우).진열된 종 창조 (O,len)
만들 새 길이 그룹을 만듭니다.
len
반환 날짜(A)빈 그룹을 만들었는지 확인하십시오.
k를 0으로 설정합니다.k에서 렌 A층까지의 순환 도로
매개 값의 리셋을 호출해서 출력 그룹을 만듭니다.
link
표준에서 구현된 알고리즘은 다른 JavaScript 엔진에서 동일한 알고리즘을 구현하는 표준이기 때문에 주의하십시오.
바로 이거예요
map
.당신은 코드에서 대량으로 사용했습니까 map
?map
를 사용하면 더 많은 변하지 않는 데이터 구조를 이용한 코드를 작성하는 데 도움이 될 것 같습니까?
Reference
이 문제에 관하여(스토리지에 대한 자세한 내용과 자세한 내용을 확인하십시오.지도.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/captainsafia/everything-you-needed-to-know-and-more-about-array-map-4a9b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)