Baseline Widely available
values()
æ¹æ³è¿åä¸ä¸ªæ°çæ°ç»è¿ä»£å¨å¯¹è±¡ï¼è¯¥å¯¹è±¡è¿ä»£æ°ç»ä¸æ¯ä¸ªå
ç´ çå¼ã
const array1 = ["a", "b", "c"];
const iterator = array1.values();
for (const value of iterator) {
console.log(value);
}
// Expected output: "a"
// Expected output: "b"
// Expected output: "c"
è¯æ³ è¿åå¼
ä¸ä¸ªæ°çå¯è¿ä»£è¿ä»£å¨å¯¹è±¡ã
æè¿°Array.prototype.values()
æ¯ Array.prototype[Symbol.iterator]()
çé»è®¤å®ç°ã
Array.prototype.values === Array.prototype[Symbol.iterator]; // true
å½åºç¨äºç¨çæ°ç»æ¶ï¼values()
æ¹æ³ä¼å°ç©ºæ§½ä½ä¸º undefined
è¿ä»£ã
values()
æ¹æ³æ¯éç¨çãå®åªéè¦ this
å¼å
·æ length
屿§åæ´æ°é®å±æ§ã
ç±äº values()
è¿åä¸ä¸ªå¯è¿ä»£è¿ä»£å¨å¯¹è±¡ï¼ä½ å¯ä»¥ä½¿ç¨ for...of
å¾ªç¯æ¥è¿ä»£å®ã
const arr = ["a", "b", "c", "d", "e"];
const iterator = arr.values();
for (const letter of iterator) {
console.log(letter);
} // "a" "b" "c" "d" "e"
ä½¿ç¨ next() è¿ä»£
ç±äºè¿åå¼ä¹æ¯ä¸ä¸ªè¿ä»£å¨ï¼ä½ å¯ä»¥ç´æ¥è°ç¨å
¶ next()
æ¹æ³ã
const arr = ["a", "b", "c", "d", "e"];
const iterator = arr.values();
iterator.next(); // { value: "a", done: false }
iterator.next(); // { value: "b", done: false }
iterator.next(); // { value: "c", done: false }
iterator.next(); // { value: "d", done: false }
iterator.next(); // { value: "e", done: false }
iterator.next(); // { value: undefined, done: true }
console.log(iterator.next().value); // undefined
éå¤ä½¿ç¨å¯è¿ä»£å¯¹è±¡
è¦åï¼ æ°ç»è¿ä»£å¨å¯¹è±¡åºè¯¥æ¯ä¸æ¬¡æ§ä½¿ç¨ç对象ãä¸è¦éå¤ä½¿ç¨å®ã
values()
è¿åçå¯è¿ä»£å¯¹è±¡æ¯ä¸å¯éå¤ä½¿ç¨çãå½ next().done = true
æ currentIndex > length
æ¶ï¼for...of
循ç¯ç»æï¼è¿ä¸æ¥è¿ä»£å®æ²¡æä»»ä½ææã
const arr = ["a", "b", "c", "d", "e"];
const values = arr.values();
for (const letter of values) {
console.log(letter);
}
// "a" "b" "c" "d" "e"
for (const letter of values) {
console.log(letter);
}
// undefined
å¦æä½¿ç¨ break
è¯å¥æåç»æè¿ä»£ï¼å½ç»§ç»è¿ä»£æ¶ï¼è¿ä»£å¨å¯ä»¥ä»å½åä½ç½®æ¢å¤è¿ä»£ã
const arr = ["a", "b", "c", "d", "e"];
const values = arr.values();
for (const letter of values) {
console.log(letter);
if (letter === "b") {
break;
}
}
// "a" "b"
for (const letter of values) {
console.log(letter);
}
// "c" "d" "e"
è¿ä»£æé´çä¿®æ¹æä½
values()
è¿åçæ°ç»è¿ä»£å¨å¯¹è±¡ä¸æ²¡æåå¨ä»»ä½å¼ï¼ä½æ¯å®åå¨äºç¨äºå建å®çæ°ç»çå°åï¼å¹¶å¨æ¯æ¬¡è¿ä»£ä¸è¯»åå½å访é®çç´¢å¼ãå æ¤ï¼å®çè¿ä»£è¾åºåå³äºå¨è¿ä»£æ¶åå¨å¨è¯¥ç´¢å¼ä¸çå¼ã妿æ°ç»ä¸çå¼åçäºæ¹åï¼æ°ç»è¿ä»£å¨å¯¹è±¡çå¼ä¹ä¼æ¹åã
const arr = ["a", "b", "c", "d", "e"];
const iterator = arr.values();
console.log(iterator); // Array Iterator { }
console.log(iterator.next().value); // "a"
arr[1] = "n";
console.log(iterator.next().value); // "n"
è¿ä»£ç¨çæ°ç»
values()
ä¼è®¿é®ç©ºæ§½å¹¶å°å
¶è§ä¸º undefined
ã
for (const element of [, "a"].values()) {
console.log(element);
}
// undefined
// 'a'
å¨éæ°ç»å¯¹è±¡ä¸è°ç¨ values()
values()
æ¹æ³è¯»å this
ç length
屿§ï¼ç¶åè®¿é®æ¯ä¸ªæ´æ°ç´¢å¼ã
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
};
for (const entry of Array.prototype.values.call(arrayLike)) {
console.log(entry);
}
// a
// b
// c
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4