Array.prototype.keys()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2015å¹´7æâ©.
keys() 㯠Array ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ãé
åå
ã®åã¤ã³ããã¯ã¹ã®ãã¼ãå«ããæ°ããé
åã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const array = ["a", "b", "c"];
const iterator = array.keys();
for (const key of iterator) {
console.log(key);
}
// äºæ³ãããçµæ: 0
// äºæ³ãããçµæ: 1
// äºæ³ãããçµæ: 2
æ§æ
keys()
弿°
ãªãã
è¿å¤
æ°ããå復å¯è½ãªã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãã§ãã
解説
çé
åã§ä½¿ç¨ããå ´åã keys() ã¡ã½ããã¯ç©ºã®ã¹ãããã undefined ã¨ããå¤ããããã®ããã«å復å¦çãã¾ãã
keys() ã¡ã½ããã¯æ±ç¨çã§ãããã㯠this å¤ã« length ããããã£ã¨æ´æ°ãã¼ã®ããããã£ããããã¨ã ããæå¾
ãã¾ãã
ä¾
>çé åã«å¯¾ãã keys() ã®å¼ã³åºã
é
åã«å®éã«åå¨ãããã¼ã ããå¦çãã Object.keys() ã¨ã¯ç°ãªãã keys() ã¤ãã¬ã¼ã¿ã¼ã¯è¦ã¤ãããªãããããã£ã表ãç©´ãç¡è¦ãã¾ããã
const arr = ["a", , "c"];
const sparseKeys = Object.keys(arr);
const denseKeys = [...arr.keys()];
console.log(sparseKeys); // ['0', '2']
console.log(denseKeys); // [0, 1, 2]
é å以å¤ã®ãªãã¸ã§ã¯ãã«å¯¾ãã keys() ã®å¼ã³åºã
keys()ã¡ã½ãã㯠this ã® length ããããã£ãèªã¿è¾¼ã¿ã 0 ãã length - 1 ã¾ã§ã®ãã¹ã¦ã®æ´æ°ã¤ã³ããã¯ã¹ãè¿ãã¾ããå®éã«ã¯ã¤ã³ããã¯ã¹ã¢ã¯ã»ã¹ã¯è¡ããã¾ããã
const arrayLike = {
length: 3,
};
for (const entry of Array.prototype.keys.call(arrayLike)) {
console.log(entry);
}
// 0
// 1
// 2
仿§æ¸
| Specification |
|---|
| ECMAScript® 2026 Language Specification > # sec-array.prototype.keys > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
Array.prototype.keysã®ããªãã£ã« (core-js)- es-shims ã«ãã
Array.prototype.keysã®ããªãã£ã« - ã¤ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³ã®ã¬ã¤ã
ArrayArray.prototype.entries()Array.prototype.values()Array.prototype[Symbol.iterator]()TypedArray.prototype.keys()- å復å¦çãããã³ã«