ECMAScript 2017(通常称为ES8)是 JavaScript 的最新版本之一,它引入了许多新的特性和功能。其中之一是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]
Object.values方法通过遍历对象的属性并返回属性值来实现。我们可以使用这个方法来轻松地从对象中获取属性值,而不必先获取属性的键,然后使用键来获取属性值。
下面是一个示例,用它来获取一个包含商品价格的对象的所有价格并计算它们的总和:
-- -------------------- ---- ------- ----- ------ - - ------- -- ------- -- ----- -- -- ----- ----- - ---------------------------------- ------ -- --- - ------ --- ------------------- -- -
Object.entries
Object.entries方法和Object.values非常相似,但它会返回一个二维数组,其中包含该对象的所有属性键值对。具体用法如下:
-- -------------------- ---- ------- ----- --- - --- -- -- -- -- --- ----- ------- - -------------------- --------------------- -- ------- -- - -- - ---- - -- -- - ---- - -- -- - ---- - - -- -
我们可以使用Object.entries方法来对对象进行迭代,并对其属性执行某些操作。例如,下面代码展示了如何将一个对象的属性名称和属性值分别打印出来:
-- -------------------- ---- ------- ----- --- - --- -- -- -- -- --- --- ------ ----- ------ -- -------------------- - ------------------- ----------- - -- ------- -- - - -- - - -- - -
在上面的例子中,我们用解构语法从数组中提取了键和值,并使用for-of来遍历二维数组。
思考
使用Object.values和Object.entries方法可以使我们更轻松地处理对象的属性、从对象中获取属性值或获取属性键值对。但是在使用这些方法时,我们需要注意它们只能处理简单的对象(key-value结构)。也就是说,如果对象的值是一个复杂对象或一个函数,则这些方法默认情况下将无法正确处理。
结论
在ECMAScript 2017中,Object.values和Object.entries是javascript中一个非常方便的工具,可以帮助我们更轻松地处理对象中的键值对。在实际的开发中,我们可以根据具体情况选择使用哪一个方法,并在使用过程中注意它们的限制。
参考文献
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670d78815f551281025d5359