Js 다차원 배열. JavaScript의 다차원 배열. I. 실제 배열 반복

  • I. 실제 배열 반복
  • forEach 메서드 및 관련 메서드
  • for 루프
  • for...in 루프의 올바른 사용
  • for...of 루프(반복자의 암시적 사용)
  • 반복자의 명시적 사용
  • 메서드를 사용하여 실제 배열을 반복합니다.
  • 실제 배열로 변환
  • 런타임 객체에 대한 참고 사항
I. 실제 배열 반복 현재 실제 배열 요소를 반복하는 세 가지 방법이 있습니다.
  • 메소드 Array.prototype.forEach ;
  • 클래식 for 루프
  • for...in 루프를 "올바르게" 구성했습니다.
  • 또한 곧 새로운 ECMAScript 6(ES 6) 표준의 출현으로 두 가지 방법이 더 추가될 것으로 예상됩니다.
  • for...of 루프(반복자의 암시적 사용);
  • 반복자의 명시적인 사용.
  • 1. forEach 메서드 및 관련 메서드 프로젝트가 ECMAScript 5(ES5) 표준 기능을 지원하도록 설계된 경우 혁신 기술 중 하나인 forEach 메서드를 사용할 수 있습니다.

    사용 예:
    var a = ["a", "b", "c"]; a.forEach(function(entry) ( console.log(entry); ));
    일반적으로 forEach를 사용하려면 이 방법을 기본적으로 지원하지 않는 브라우저에 대해 es5-shim 에뮬레이션 라이브러리를 연결해야 합니다. 여기에는 IE 8 이하 버전이 포함되며 일부 장소에서는 아직 사용되고 있습니다.

    forEach의 장점은 현재 배열 요소의 인덱스와 값을 저장하기 위해 로컬 변수를 선언할 필요가 없다는 점입니다. 이는 자동으로 콜백 함수에 인수로 전달되기 때문입니다.

    각 요소에 대해 콜백을 호출하는 데 드는 비용이 걱정된다면 걱정하지 말고 이 글을 읽어보세요.

    ForEach는 배열의 모든 요소를 ​​반복하도록 설계되었지만 그 외에도 ES5는 전체 또는 일부 요소를 반복하고 해당 요소에 대해 일부 작업을 수행하는 데 더 유용한 몇 가지 방법을 제공합니다.

    • Every - 배열의 각 요소에 대해 콜백이 true 로 변환될 수 있는 값을 반환하는 경우 true를 반환합니다.
    • some - 배열의 하나 이상의 요소에 대해 콜백이 true로 변환될 수 있는 값을 반환하는 경우 true를 반환합니다.
    • 필터 - 콜백이 true 를 반환하는 원래 배열의 요소를 포함하는 새 배열을 만듭니다.
    • map - 콜백에서 반환된 값으로 구성된 새 배열을 만듭니다.
    • 감소 - 배열을 단일 값으로 줄이고 첫 번째부터 시작하여 배열의 각 요소에 콜백을 차례로 적용합니다(배열 요소 및 기타 요약 함수의 합계를 계산하는 데 유용할 수 있음).
    • ReduceRight - Reduce와 유사하게 작동하지만 요소를 역순으로 반복합니다.
    2. For 루프 규칙에 적합:

    Var a = ["a", "b", "c"]; var 인덱스; (인덱스 = 0; 인덱스< a.length; ++index) { console.log(a); }
    배열 길이가 루프 전체에서 일정하고 루프 자체가 성능이 중요한 코드 섹션에 속하는 경우(가능성은 낮음) 배열 길이를 저장하는 for 의 "더 최적" 버전을 사용할 수 있습니다. :

    Var a = ["a", "b", "c"]; var 인덱스, len; for (index = 0, len = a.length; 인덱스< len; ++index) { console.log(a); }
    이론적으로 이 코드는 이전 코드보다 조금 더 빠르게 실행되어야 합니다.

    요소의 순서가 중요하지 않은 경우 최적화 측면에서 더 나아가 배열 길이를 저장하는 변수를 제거하고 검색 순서를 반대로 변경할 수 있습니다.

    Var a = ["a", "b", "c"]; var 인덱스; for (index = a.length - 1; index >= 0; --index) ( console.log(a); )
    그러나 최신 JavaScript 엔진에서는 이러한 최적화 게임이 일반적으로 아무 의미가 없습니다.

    3. for...in 루프의 올바른 사용 for...in 루프를 사용하도록 권장되는 경우 배열을 반복하는 것이 의도된 것이 아니라는 점을 기억하십시오. 일반적인 오해와는 달리 for...in 루프는 배열 인덱스를 반복하는 것이 아니라 객체의 열거 가능한 속성을 통해 반복합니다.

    그러나 희소 배열 반복과 같은 일부 경우에는 아래 예와 같이 예방 조치를 취하는 한 for...in이 유용할 수 있습니다.

    // a - 희소 배열 var a = ; a = "a"; a = "비"; a = "c"; for (var key in a) ( if (a.hasOwnProperty(key) && /^0$|^\d*$/.test(key) && key

    질문이 있으신가요?

    오타 신고

    편집자에게 전송될 텍스트: