在 JavaScript 中,对象是一种常见的数据类型,它非常灵活。在开发中,我们经常需要对对象进行操作,获取它们的属性和值。ES7 引入了两个新的方法 Object.values() 和 Object.entries(),可以更方便地对对象进行操作和遍历。
Object.values()
Object.values() 方法返回一个包含对象所有属性值的数组。例如:
const obj = { a: 1, b: 2, c: 3 }; const values = Object.values(obj); console.log(values); // [1, 2, 3]
在上面的代码中,我们定义了一个对象 obj,它有三个属性 a、b 和 c,然后我们使用 Object.values() 方法获取所有属性值并存储在 values 数组中。最后,我们使用 console.log() 方法输出了这个数组。
需要注意的是,返回的数组中属性值的顺序是根据对象属性的添加顺序决定的。例如:
const obj2 = { c: 3, a: 1, b: 2 }; const values2 = Object.values(obj2); console.log(values2); // [1, 2, 3]
在上面的例子中,我们重新排列了 obj2 对象的属性的顺序,但是返回的数组中的属性值的顺序和第一个例子一样。
如果传入的参数不是对象,而是其他的数据类型,Object.values() 方法会抛出一个 TypeError 异常。
Object.entries()
Object.entries() 方法返回一个包含对象所有属性键值对的数组。数组的每个元素都是一个形如 [key, value] 的数组。例如:
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); console.log(entries); // [['a', 1], ['b', 2], ['c', 3]]
在上面的代码中,我们定义了一个对象 obj,然后我们使用 Object.entries() 方法获取所有属性键值对并存储在 entries 数组中。最后,我们使用 console.log() 方法输出了这个数组。
需要注意的是,返回的数组中属性键值对的顺序是根据对象属性的添加顺序决定的。例如:
const obj2 = { c: 3, a: 1, b: 2 }; const entries2 = Object.entries(obj2); console.log(entries2); // [['c', 3], ['a', 1], ['b', 2]]
在上面的例子中,我们重新排列了 obj2 对象的属性的顺序,返回的数组中的属性键值对的顺序和第一个例子不一样。
如果传入的参数不是对象,而是其他的数据类型,Object.entries() 方法会抛出一个 TypeError 异常。
总结
ES7 引入的 Object.values()/Object.entries() 方法为操作对象提供了更方便的方式,可以不需要使用循环或者其他工具来访问对象的属性值或者属性键值对。同时这两个新方法的使用也很简单,在代码中只需使用 Object.values()/Object.entries() 就可以了,不需要安装或者导入额外的模块或者库。
示例代码:
-- -------------------- ---- ------- ----- --- - - -- -- -- -- -- - -- -- --------------- -- ----- ------ - ------------------- -------------------- -- --- -- -- -- ---------------- -- ----- ------- - -------------------- --------------------- -- ------ --- ----- --- ----- ---
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c7de4c5ad90b6d04121869