ES6 튜 토리 얼 의 for 순환 과 Map,Set 용법 분석
지금 여러분 은 먼저 한 배열 의 요 소 를 옮 겨 다 니 려 면 어떻게 하 시 겠 습 니까?일반적으로 for 순환 이 생각 납 니 다.
for (var index = 0; index < myArray.length; index++) {
console.log(myArray[index]);
}
안 타 깝 게 도 이 방법 은 20 년 동안 인재 가 사용 해 야 할 방법 입 니 다.ES5 에서 더욱 간편 한 foreach 방법 을 제 시 했 습 니 다.코드 는 다음 과 같 습 니 다.
myArray.forEach(function (value) {
console.log(value);
});
foreach 방법 은 짧 지만 break 로 순환 을 중단 할 수 없고 return 을 통 해 순환 을 종료 할 수 없다 는 단점 도 있 습 니 다.그럼 for-in 방법 도 있 잖 아 요.
for (var index in myArray) {
console.log(myArray[index]);
}
그러나 for-in 방법 은 실제로 key 의 키 쌍 형 대상 을 저장 하기 위해 준비 한 것 이지 배열 을 위 한 것 이 아 닙 니 다.아래 표 시 는 문자열'1','2'입 니 다.'1'+'2'가 어떻게 될 지 아 시 겠 죠?for-off 순환
ES6 는 이전의 코드 에 영향 을 주지 않 기 위해 많은 사람들 이 기 른 습관 을 만족 시 키 기 위해 새로운 순환 문법 for-of 만 내 놓 을 수 있 습 니 다.
for (var value of myArray) {
console.log(value);
}
for-in 과 for-of 를 비교 합 니 다.
var a = ["a","b","c","d","e"];
for (var idx in a) {
console.log( idx );
}// 0 1 2 3 4
for (var val of a) {
console.log( val );
}// "a" "b" "c" "d" "e"
for-of 는 배열 뿐만 아니 라 dom 대상 에 도 사용 할 수 있 으 며 맵 과 set 대상 에 도 똑 같이 작용 합 니 다.다음은 맵 과 Set 대상 을 소개 하 겠 습 니 다.
Map,Set
자 바스 크 립 트 의 기본 대상 표시 방식 은{}이지 만 자 바스 크 립 트 의 대상 은 키 가 문자열 이 어야 한 다 는 작은 문제 가 있 습 니 다.그러나 실제로 Number 나 다른 데이터 형식 을 키 로 하 는 것 도 매우 합리적이다.
이 문 제 를 해결 하기 위해 최신 ES6 규범 은 새로운 데이터 형식 맵 을 도입 했다.
Map 은 매우 빠 른 검색 속 도 를 가 진 키 쌍 구조 입 니 다.
우 리 는 맵 의 사용 예 시 를 살 펴 보 자.
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95
var m = new Map(); // Map
m.set('Adam', 67); // key-value
m.set('Bob', 59);
m.has('Adam'); // key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // key 'Adam'
m.get('Adam'); // undefined
위의 has 방법 은 index Of 보다 속도 가 빠르다.Set 는 Map 과 유사 하고 key 가 존재 하 는 목록 입 니 다.Set 의 요 소 는 중복 되 지 않 습 니 다.
var s1 = new Set(); // Set
var s2 = new Set([1, 2, 3]); // 1, 2, 3
var s = new Set([1, 2, 3, 3, '3']);
s; // Set {1, 2, 3, "3"}
다시 추 가 된 중복 데이터 가 걸 러 지 는 것 을 볼 수 있 습 니 다.그렇다면 이 두 대상 의 활용 장면 은 어떤 것들 이 있 을 까?
Map 은 키 쌍 을 저장 할 수 있 습 니 다.예 를 들 어 이름과 나이,set 는 반복 할 수 없 는 목 표를 저장 할 수 있 습 니 다.예 를 들 어 학 번 목록 등 입 니 다.
for-of 사용 대상
자,두 가지 유형의 새로운 대상 을 소 개 했 습 니 다.for-of 가 set 대상 에 어떻게 작용 하 는 지 보 여 주세요.
var uniqueWords = new Set(words);
for (var word of uniqueWords) {
console.log(word);
}
Map 대상 을 옮 겨 다 니 는 것 은 다 릅 니 다.Map 은 키 로 저장 되 어 있 기 때문에 우 리 는 두 개의 단독 변 수 를 나 누 어 옮 겨 다 녀 야 합 니 다.
for (var [key, value] of phoneBookMap) {
console.log(key + "'s phone number is: " + value);
}
하지만 주의해 야 합 니 다.for-of 는 일반적인 대상 의 속성 을 옮 겨 다 니 는 것 이 아 닙 니 다.만약 우리 가 반드시 이렇게 해 야 한다 면 for-in 또는 다음 과 같은 방법 을 사용 할 수 있 습 니 다.
for (var key of Object.keys(someObject)) {
console.log(key + ": " + someObject[key]);
}
본 논문 에서 말 한 것 이 여러분 의 ECMAScript 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(Javascript) ES6의 주요 특징 정리let을 사용하면 선언한 변수는 블록안에서만 유효하게 된다. const 역시 마찬가지로 블록스코프를 따른다 .const 와 let의 차이점은 const 는 상수로 값을 할당한다는 점이다. 따라서 값을 변경시키려고 하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.