Object.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æ.
Object.keys() ã¯éçã¡ã½ããã§ãæå®ããããªãã¸ã§ã¯ããæã¤ããããã£ã®ååã®é
åããé常ã®ã«ã¼ãã§åå¾ããã®ã¨åãé åºã§è¿ãã¾ãã
試ãã¦ã¿ã¾ããã
const object = {
a: "some string",
b: 42,
c: false,
};
console.log(Object.keys(object));
// äºæ³ãããçµæ: Array ["a", "b", "c"]
æ§æ
Object.keys(obj)
弿°
obj-
èªèº«ã®åæå¯è½ãªããããã£ãè¿ããããªãã¸ã§ã¯ãã§ãã
è¿å¤
ä¸ãããããªãã¸ã§ã¯ãã®ãã¹ã¦ã®åæå¯è½ãªããããã£ã表ãæååã®é åã
解説
Object.keys() ã¯ã object ã§ç´æ¥è¦ã¤ãã£ãåæå¯è½ãªããããã£ã«å¯¾å¿ãããæååãè¦ç´ ã¨ããé
åãè¿ãã¾ãããã㯠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 ãçºçãã¦ãã¾ããã
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.keys> |