如何使用 JavaScript 的 Object.values() 函数
Object.values()
就好像 Object.keys()
,除了它返回一个包含所有对象值的数组,而不是对象的键。
const obj = { name: 'MasteringJS', location: 'Florida' };
Object.values(obj); // ['MasteringJS', 'Florida']
为什么要将对象转换为值数组?
因此,您可以轻松地遍历对象自身的值。
例如,您可以 使用 forEach()
。
const obj = {
name: 'Jean-Luc Picard',
rank: 'Captain'
};
// Prints "Jean-Luc Picard" followed by "Captain"
Object.values(obj).forEach(val => {
console.log(val);
});
Only Own Properties
Object.values()
跳过继承的属性——仅在对象原型上定义的属性。
这通常是 POJO ,因为您通常不希望 Object.values()
包括 toString()
功能。
但是如果你正在使用你可能会遇到麻烦 Object.values()
上一堂课。
在下面的示例中, Object.values()
不 的 值 className
值,因为 className
是类原型的吸气剂,而不是自己的属性 user
。
class User {
get className() {
return 'User';
}
constructor(name) {
this.name = name;
}
}
const user = new User('Jean-Luc Picard');
Object.keys(user); // ['Jean-Luc Picard'], no 'User'!
可枚举性
Object.values()
只会返回 可枚举 。
const obj = {
name: 'Jean-Luc Picard',
age: 59
};
Object.defineProperty(obj, 'hidden', {
enumerable: false,
value: true
});
obj.hidden // true
Object.values(obj); // ['Jean-Luc Picard', 59]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 如何在 Vue 中处理窗口大小调整事件
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论