JS에서 반복 반복 수조의 네 가지 방식 총결
for 순환:
for (let index=0; index < someArray.length; index++) {
const elem = someArray[index];
// ・・・
}
for-in 순환:
for (const key in someArray) {
console.log(key);
}
수조 방법.forEach():
someArray.forEach((elem, index) => {
console.log(elem, index);
});
for-of 순환:
for (const elem of someArray) {
console.log(elem);
}
for-of는 통상적으로 최선의 선택이다.우리는 원인을 알 것이다.for 순환 [ES1]
JavaScript의 for 순환은 매우 오래되었고 ECMAScript 1에 이미 존재합니다.for arr 각 요소의 인덱스 및 값을 주기적으로 기록합니다.
const arr = ['a', 'b', 'c'];
arr.prop = 'property value';
for (let index=0; index < arr.length; index++) {
const elem = arr[index];
console.log(index, elem);
}
// Output:
// 0, 'a'
// 1, 'b'
// 2, 'c'
for 순환의 장단점은 무엇입니까?for-in 순환 [ES1]
for-in 순환은 for 순환과 마찬가지로 오래되었고 ECMAScript 1에도 존재합니다.다음 코드는 for-in으로 arr의 키를 순환해서 출력합니다.
const arr = ['a', 'b', 'c'];
arr.prop = 'property value';
for (const key in arr) {
console.log(key);
}
// Output:
// '0'
// '1'
// '2'
// 'prop'
for-in은 여러 그룹을 순환하는 좋은 방법이 아닙니다.수조 방법.forEach()[ES5]
for와 for-in 모두 수조 순환에 특별히 적합하지 않기 때문에 ECMAScript 5에 보조 방법을 도입했습니다: Array.prototype.forEach():
const arr = ['a', 'b', 'c'];
arr.prop = 'property value';
arr.forEach((elem, index) => {
console.log(elem, index);
});
// Output:
// 'a', 0
// 'b', 1
// 'c', 2
이런 방법은 확실히 편리하다. 이것은 우리가 대량의 조작을 하지 않아도 그룹 요소와 색인에 접근할 수 있게 한다.화살표 함수 (ES6에 도입) 를 사용하면 구문에서 더욱 우아해집니다..forEach()의 주요 단점은 다음과 같습니다.
중지forEach()의 해결 방법
중지하려면forEach () 와 같은 순환에는 다음과 같은 해결 방법이 있습니다.some () 은 모든 그룹 요소를 순환하고 실제 값으로 되돌릴 때 멈춥니다.
const arr = ['red', 'green', 'blue'];
arr.some((elem, index) => {
if (index >= 2) {
return true; //
}
console.log(elem);
// `undefined`,
// 。 , 。
});
// Output:
// 'red'
// 'green'
이것은 옳다고 말할 수 있다.some ()의 남용은 for-of와break에 비해 이 코드를 이해하기가 쉽지 않다.for-of 순환 [ES6]
for-of 순환은 ECMAScript 6에서 지원됩니다.
const arr = ['a', 'b', 'c'];
arr.prop = 'property value';
for (const elem of arr) {
console.log(elem);
}
// Output:
// 'a'
// 'b'
// 'c'
for-of는 수조를 순환할 때 매우 유효합니다.그룹 요소를 훑어보는 데 사용됩니다.
await를 사용할 수 있습니다.
for-of 및 교체 가능 대상
for-of는 그룹뿐만 아니라 반복 가능한 대상, 예를 들어 맵을 반복할 수 있습니다.
const myMap = new Map()
.set(false, 'no')
.set(true, 'yes')
;
for (const [key, value] of myMap) {
console.log(key, value);
}
// Output:
// false, 'no'
// true, 'yes'
myMap을 훑어보면 [키, 값] 쌍이 생성됩니다. 이를 해부하여 모든 데이터에 직접 접근할 수 있습니다.for-of 및 배열 인덱스
수조 방법.entries () 는 교체할 수 있는 [index,value] 쌍을 되돌려줍니다.for-of를 사용하고 이 방법을 사용하면 그룹 인덱스에 쉽게 접근할 수 있습니다.
const arr = ['chocolate', 'vanilla', 'strawberry'];
for (const [index, elem] of arr.entries()) {
console.log(index, elem);
}
// Output:
// 0, 'chocolate'
// 1, 'vanilla'
// 2, 'strawberry'
총결산
for-of 순환의 가용성은 for,for-in과.forEach()가 더 좋습니다.
통상적으로 네 가지 순환 메커니즘 간의 성능 차이는 중요하지 않을 것이다.연산량이 많은 일을 하려면 WebAssembly로 전환하는 것이 좋습니다.
JS에서 수조를 순환하는 네 가지 방식에 대해 정리한 이 글은 여기까지 소개합니다. 더 많은 JS 순환 수조에 대한 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[2022.04.19] 자바스크립트 this - 생성자 함수와 이벤트리스너에서의 this18일에 this에 대해 공부하면서 적었던 일반적인 함수나 객체에서의 this가 아닌 오늘은 이벤트리스너와 생성자 함수 안에서의 this를 살펴보기로 했다. new 키워드를 붙여 함수를 생성자로 사용할 때 this는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.