Array.prototype.keys()
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
keys() æ¹æ³è¿åä¸ä¸ªæ°çæ°ç»è¿ä»£å¨å¯¹è±¡ï¼å
¶ä¸å
嫿°ç»ä¸æ¯ä¸ªç´¢å¼çé®ã
å°è¯ä¸ä¸
const array1 = ["a", "b", "c"];
const iterator = array1.keys();
for (const key of iterator) {
console.log(key);
}
// Expected output: 0
// Expected output: 1
// Expected output: 2
è¯æ³
js
keys()
è¿åå¼
ä¸ä¸ªæ°çå¯è¿ä»£è¿ä»£å¨å¯¹è±¡ã
æè¿°
å½ç¨äºç¨çæ°ç»æ¶ï¼keys() æ¹æ³è¿ä»£ç©ºæ§½ï¼å°±åå®ä»¬çå¼ä¸º undefined 䏿 ·ã
keys() æ¹æ³æ¯éç¨çãå®åªææ this å¼å
·æ length 屿§åæ´æ°é®å±æ§ã
示ä¾
>å¨ç¨çæ°ç»ä¸ä½¿ç¨ keys()
ä¸ Object.keys() åªå
嫿°ç»ä¸å®é
åå¨çé®ä¸åï¼keys() è¿ä»£å¨ä¸ä¼å¿½ç¥ç¼ºå¤±å±æ§çé®ã
js
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 ä¹é´çæææ´æ°ç´¢å¼ãå®é
å¹¶ä¸ä¼è®¿é®ç´¢å¼ã
js
const arrayLike = {
length: 3,
};
for (const entry of Array.prototype.keys.call(arrayLike)) {
console.log(entry);
}
// 0
// 1
// 2
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-array.prototype.keys> |