>웹 프론트엔드 >JS 튜토리얼 >Javascript 배열 폴리필: 맵, 필터

Javascript 배열 폴리필: 맵, 필터

Patricia Arquette
Patricia Arquette원래의
2024-12-17 06:47:25274검색

Javascript array polyfils: map, filter

자바스크립트에서 폴리필이 무엇인가요?

현대에는 최신 버전의 JavaScript가 다양한 기능을 지원합니다. 그러나 일부 이전 브라우저는 이러한 새로운 기능을 모두 완벽하게 지원하지 않으므로 Internet Explorer(IE)와 같은 브라우저에서 논리가 예상대로 작동하지 않을 수 있습니다.

이전 브라우저와의 호환성을 보장하기 위해 이러한 최신 기능의 동작을 모방하는 맞춤 로직을 작성할 수 있습니다. 이 사용자 정의 코드를 "폴리필"이라고 합니다.

이번 게시물에서는 배열 방법에 대한 폴리필의 몇 가지 예를 제공하겠습니다.

1. 지도:

    if (!Array.prototype.map) {
      try {
          Array.prototype.map = function(callback) {
              const arr = [];
              if (typeof callback !== "function") {
                  throw new Error("map callback is not a function");
              } else {
                  const len = this.length;
                  for (let i = 0; i < len; i++) {
                      const val = callback(this[i], i);
                      arr.push(val);
                  }
              }
              return arr;
          }
      } catch (err) {
          console.error(err);
      }
  }

위 코드에서 네이티브 맵 메소드가 없는 경우 배열의 프로토타입 체인에 하나의 맵 메소드를 추가한 것을 볼 수 있습니다.

2. 필터:

if (!Array.prototype.filter) {
    try {
        Array.prototype.filter = function(callback) {
            const arr = [];
            if (typeof callback !== "function") {
                throw new Error("filter callback is not a function");
            } else {
                const len = this.length;
                for (let i = 0; i < len; i++) {
                    const val = callback(this[i], i);
                    if (val) {
                        arr.push(this[i]);
                    }
                }
            }
            return arr;
        }
    } catch (err) {
        console.error(err);
    }
}

위 내용은 Javascript 배열 폴리필: 맵, 필터의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.