Object.keys()
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Object.keys() éææ¹æ³è¿åä¸ä¸ªç±ç»å®å¯¹è±¡èªèº«ç坿䏾çå符串é®å±æ§åç»æçæ°ç»ã
å°è¯ä¸ä¸
const object1 = {
a: "somestring",
b: 42,
c: false,
};
console.log(Object.keys(object1));
// Expected output: Array ["a", "b", "c"]
è¯æ³
Object.keys(obj)
åæ°
obj-
ä¸ä¸ªå¯¹è±¡ã
è¿åå¼
ä¸ä¸ªç±ç»å®å¯¹è±¡èªèº«å¯æä¸¾çå符串é®å±æ§é®ç»æçæ°ç»ã
æè¿°
Object.keys() è¿åä¸ä¸ªæ°ç»ï¼å
¶å
ç´ æ¯å符串ï¼å¯¹åºäºç´æ¥å¨å¯¹è±¡ä¸æ¾å°ç坿䏾çå符串é®å±æ§åãè¿ä¸ä½¿ç¨ for...in 循ç¯è¿ä»£ç¸åï¼åªæ¯ for...in 循ç¯è¿ä¼æä¸¾ååé¾ä¸ç屿§ãObject.keys() è¿åçæ°ç»é¡ºåºåä¸ for...in å¾ªç¯æä¾ç顺åºç¸åã
å¦æä½ éè¦å±æ§çå¼ï¼è¯·ä½¿ç¨ Object.values()ãå¦æä½ åæ¶éè¦å±æ§çé®åå¼ï¼è¯·ä½¿ç¨ Object.entries()ã
示ä¾
>ä½¿ç¨ Object.keys()
// ç®åæ°ç»
const arr = ["a", "b", "c"];
console.log(Object.keys(arr)); // ['0', '1', '2']
// ç±»æ°ç»å¯¹è±¡
const obj = { 0: "a", 1: "b", 2: "c" };
console.log(Object.keys(obj)); // ['0', '1', '2']
// é®ç顺åºéæºçç±»æ°ç»å¯¹è±¡
const anObj = { 100: "a", 2: "b", 7: "c" };
console.log(Object.keys(anObj)); // ['2', '7', '100']
// getFoo æ¯ä¸ä¸ªä¸å¯æä¸¾ç屿§
const myObj = Object.create(
{},
{
getFoo: {
value() {
return this.foo;
},
},
},
);
myObj.foo = 1;
console.log(Object.keys(myObj)); // ['foo']
å¦æä½ æ³è¦ææä»¥å符串为é®çèªæå±æ§ï¼å
æ¬ä¸å¯æä¸¾ç屿§ï¼åè§ Object.getOwnPropertyNames()ã
å¨åºæ¬ç±»åä¸ä½¿ç¨ Object.keys()
éå¯¹è±¡åæ°ä¼å¼ºå¶è½¬æ¢ä¸ºå¯¹è±¡ãundefined å null ä¸è½è¢«å¼ºå¶è½¬æ¢ä¸ºå¯¹è±¡ï¼ä¼ç«å³æåº TypeErrorãåªæå符串å¯ä»¥æèªå·±ç坿䏾屿§ï¼èå
¶ä»ææåºæ¬ç±»åé½è¿åä¸ä¸ªç©ºæ°ç»ã
// å符串å
·æç´¢å¼ä½ä¸ºå¯æä¸¾çèªæå±æ§
console.log(Object.keys("foo")); // ['0', '1', '2']
// å
¶ä»åºæ¬ç±»åï¼é¤äº undefined å nullï¼æ²¡æèªæå±æ§
console.log(Object.keys(100)); // []
夿³¨ï¼å¨ ES5 ä¸ï¼å°ä¸ä¸ªéå¯¹è±¡ä¼ éç» Object.keys() 伿åºä¸ä¸ª TypeErrorã
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.keys> |