Baseline Widely available
values()
㯠Array
ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ãé
åã®åè¦ç´ ã®å¤ãå«ãæ°ããé
åã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
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"
å復å¦çã¡ã½ããã¨ã¯ç°ãªããé åã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãã¯ä½ææã«é åã®é·ããä¿åãããå復å¦çã®ãã³ã«ä¸åº¦ã ãèªã¿è¾¼ã¿ã¾ãããã®ãããå復å¦çä¸ã«é åã大ãããªã£ãå ´åãã¤ãã¬ã¼ã¿ã¼ã¯æ°ããè¦ç´ ãå¦çãã¾ããããã«ãããç¡éã«ã¼ããçºçããå¯è½æ§ãããã¾ãã
const arr = [1, 2, 3];
for (const e of arr) {
arr.push(e * 10);
}
// RangeError: invalid array length
çé
åã®å復å¦ç
values()
ã¯ç©ºã®ã¹ãããã undefined
ã§ãããã®ããã«å¦çãã¾ãã
for (const element of [, "a"].values()) {
console.log(element);
}
// undefined
// 'a'
é
å以å¤ã®ãªãã¸ã§ã¯ãã«å¯¾ãã values() ã®å¼ã³åºã
values()
ã¡ã½ãã㯠this
ã® length
ããããã£ãèªã¿è¾¼ã¿ããã®ãã¼ã length
ããå°ããéè² ã®æ´æ°ã§ããåããããã£ã«ã¢ã¯ã»ã¹ãã¾ãã
const arrayLike = {
length: 3,
0: "a",
1: "b",
2: "c",
3: "d", // length ã 3 ã§ãããã values() ããã¯ç¡è¦ããã
};
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