Js 다차원 배열. JavaScript의 다차원 배열. I. 실제 배열 반복
- I. 실제 배열 반복
- forEach 메서드 및 관련 메서드
- for 루프
- for...in 루프의 올바른 사용
- for...of 루프(반복자의 암시적 사용)
- 반복자의 명시적 사용
- 메서드를 사용하여 실제 배열을 반복합니다.
- 실제 배열로 변환
- 런타임 객체에 대한 참고 사항
사용 예:
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와 유사하게 작동하지만 요소를 역순으로 반복합니다.
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 엔진에서는 이러한 최적화 게임이 일반적으로 아무 의미가 없습니다.
그러나 희소 배열 반복과 같은 일부 경우에는 아래 예와 같이 예방 조치를 취하는 한 for...in이 유용할 수 있습니다.
// a - 희소 배열 var a = ; a = "a"; a = "비"; a = "c"; for (var key in a) ( if (a.hasOwnProperty(key) && /^0$|^\d*$/.test(key) && key