Object.entries 不是 NWJS 0.36.3 (Node 11.10.1) 中的函数
Object.entries is not a function in NWJS 0.36.3 (Node 11.10.1)
我正在尝试创建一个在对象中将 'keys' 与 'values' 交换的函数。出于某种原因,我收到 TypeError: object.entries is not a function。我在这里遗漏了什么或做错了什么?
Object.defineProperty(Object.prototype, 'swapKeysValues', {
value: function() {
let obj = {};
this.entries().forEach(([key, value]) => {
obj[value] = key;
});
return obj;
}
});
进一步测试显示:
let foo = { a: 1, b: 2, c: 3 }
typeof foo // "object"
foo instanceof Object // true
foo.entries // undefined
foo.entries() // Uncaught TypeError: foo.entries is not a function
更新:
所以我了解到对象(即 let foo = { a: 1 })不会继承 .entries、.keys 或 .values 函数作为属性,我必须通过调用 Object.entries(foo) 正如 tehhowch / SylvainF 所指出的。工作代码:
Object.defineProperty(Object.prototype, 'swapKeysValues', {
value: function() {
let obj = {};
Object.entries(this).forEach(([key, value]) => {
obj[value] = key;
});
return obj;
}
});
// Example
let foo = { a: 1, b: 2, c: 3 }
foo.swapKeysValues()
// Output
{1: "a", 2: "b", 3: "c"}
谢谢 tehhowch / SylvainF!
正如@tehhowch 在评论中所说,语法是 Object.entries(foo)
可以看到MDn页面:https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/entries
我正在尝试创建一个在对象中将 'keys' 与 'values' 交换的函数。出于某种原因,我收到 TypeError: object.entries is not a function。我在这里遗漏了什么或做错了什么?
Object.defineProperty(Object.prototype, 'swapKeysValues', {
value: function() {
let obj = {};
this.entries().forEach(([key, value]) => {
obj[value] = key;
});
return obj;
}
});
进一步测试显示:
let foo = { a: 1, b: 2, c: 3 }
typeof foo // "object"
foo instanceof Object // true
foo.entries // undefined
foo.entries() // Uncaught TypeError: foo.entries is not a function
更新:
所以我了解到对象(即 let foo = { a: 1 })不会继承 .entries、.keys 或 .values 函数作为属性,我必须通过调用 Object.entries(foo) 正如 tehhowch / SylvainF 所指出的。工作代码:
Object.defineProperty(Object.prototype, 'swapKeysValues', {
value: function() {
let obj = {};
Object.entries(this).forEach(([key, value]) => {
obj[value] = key;
});
return obj;
}
});
// Example
let foo = { a: 1, b: 2, c: 3 }
foo.swapKeysValues()
// Output
{1: "a", 2: "b", 3: "c"}
谢谢 tehhowch / SylvainF!
正如@tehhowch 在评论中所说,语法是 Object.entries(foo)
可以看到MDn页面:https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Object/entries