如何使用 JavaScript 的 Object.values() 函数

发布于 2022-06-10 13:25:20 字数 1875 浏览 943 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

清风疏影

暂无简介

文章
评论
25 人气
更多

推荐作者

泛泛之交

文章 0 评论 0

音栖息无

文章 0 评论 0

荆棘i

文章 0 评论 0

泛滥成性

文章 0 评论 0

我还不会笑

文章 0 评论 0

假扮的天使

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文