在 ES8 中,新增了两个非常有用的方法:Object.entries
和 Object.values
。这两个方法可以帮助我们方便地处理对象的属性,让代码更加简洁和易读。本文将介绍如何使用这两个方法,并给出一些示例代码,帮助读者更好地理解这些新特性。
Object.entries
Object.entries
方法返回一个对象的属性键值对数组。这个方法非常有用,因为它允许我们遍历对象并处理它的属性,而不需要使用 for...in
循环。
以下是一个使用 Object.entries
的简单示例:
// javascriptcn.com 代码示例 const obj = { name: 'Tom', age: 25, address: 'Shanghai, China' }; const entries = Object.entries(obj); console.log(entries);
执行上面的代码会输出以下内容:
[ ['name', 'Tom'], ['age', 25], ['address', 'Shanghai, China'] ]
我们看到,Object.entries
方法返回了一个键值对数组,每个元素都是一个长度为 2 的数组,第一个元素是属性名,第二个元素是属性值。
例子:计算对象属性的总和
以下是一个使用 Object.entries
以及 reduce
方法计算对象属性值总和的示例:
// javascriptcn.com 代码示例 const obj = { a: 100, b: 200, c: 300 }; const sum = Object.entries(obj).reduce((acc, [key, value]) => acc + value, 0); console.log(sum); // output: 600
在这个示例中,我们使用 Object.entries
方法将对象转化为了键值对数组,然后在 reduce
方法中迭代这个数组,并计算每个属性的值的总和。很明显,使用 Object.entries
和 reduce
方法就可以生动形象地计算任意对象的属性值总和。
Object.values
Object.values
方法返回一个对象的属性值数组。类似于 Object.entries
,这个方法也可以让我们很方便地处理对象的属性。
以下是一个使用 Object.values
的简单示例:
// javascriptcn.com 代码示例 const obj = { name: 'Tom', age: 25, address: 'Shanghai, China' }; const values = Object.values(obj); console.log(values);
执行上面的代码会输出以下内容:
['Tom', 25, 'Shanghai, China']
我们看到,Object.values
方法返回了对象的属性值数组。
例子:通过属性值过滤对象
以下是一个使用 Object.values
以及 filter
方法根据对象属性值过滤对象属性的示例:
// javascriptcn.com 代码示例 const obj = { a: 100, b: 200, c: 300 }; const filteredObj = Object.fromEntries( Object.entries(obj).filter(([key, value]) => value > 100) ); console.log(filteredObj); // output: { b: 200, c: 300 }
在这个示例中,我们首先使用 Object.entries
方法将对象转化为了键值对数组。然后我们使用 filter
方法过滤这个数组,只保留那些属性值大于 100 的元素。最后,使用 Object.fromEntries
方法将结果数组转换回对象格式。
值得注意的是,这个示例将 Object.entries
、filter
和 Object.fromEntries
一起使用,不仅展示了如何使用 Object.values
,还演示了如何使用多个不同的方法处理对象属性。
总结
在本文中,我们介绍了 ES8 中新增的 Object.entries
和 Object.values
方法,并给出了一些使用这些方法处理对象属性的示例。这两个方法可以让我们更加方便地处理对象属性,减少无用的代码,提高代码质量和可读性。始终牢记这些方法
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6538c0ca7d4982a6eb1bf464