ES7 中新增了 Object.entries() 方法,它可以将一个对象转换为一个由键值对数组组成的数组。这个方法非常实用,我们可以用它来遍历对象属性、过滤对象属性、将对象属性转换为数组等。本文将会详细介绍 Object.entries() 方法的应用,并提供一些示例代码。
Object.entries() 方法的基本用法
Object.entries() 方法接收一个对象作为参数,返回一个由键值对数组组成的数组。每个键值对数组包含两个元素,第一个元素是属性名,第二个元素是属性值。示例代码如下:
const obj = { foo: 'bar', baz: 42 }; const entries = Object.entries(obj); console.log(entries); // [['foo', 'bar'], ['baz', 42]]
遍历对象属性
使用 Object.entries() 方法可以很方便地遍历对象属性。我们可以使用 for...of 循环来遍历数组,并在循环体中使用解构赋值来获取键值对数组中的键和值。示例代码如下:
const obj = { foo: 'bar', baz: 42 }; for (const [key, value] of Object.entries(obj)) { console.log(`${key}: ${value}`); } // Output: // foo: bar // baz: 42
过滤对象属性
有时候我们需要根据对象属性的某些条件来过滤出满足条件的属性。使用 Object.entries() 方法可以很方便地实现这个功能。我们可以使用 Array.prototype.filter() 方法来过滤键值对数组,然后使用 Object.fromEntries() 方法将过滤后的键值对数组转换为对象。示例代码如下:
const obj = { foo: 'bar', baz: 42, qux: 'quux' }; const filteredEntries = Object.entries(obj).filter(([key, value]) => value === 'bar' || typeof value === 'number'); const filteredObj = Object.fromEntries(filteredEntries); console.log(filteredObj); // { foo: 'bar', baz: 42 }
将对象属性转换为数组
有时候我们需要将对象属性转换为数组,使用 Object.entries() 方法可以很方便地实现这个功能。我们可以使用 Array.prototype.map() 方法来将键值对数组中的值转换为数组,然后将这些数组组成一个新的数组。示例代码如下:
const obj = { foo: 'bar', baz: 42 }; const valueArray = Object.entries(obj).map(([key, value]) => value); console.log(valueArray); // ['bar', 42]
总结
Object.entries() 方法是 ES7 中新增的一个非常实用的方法,它可以将一个对象转换为一个由键值对数组组成的数组。我们可以使用它来遍历对象属性、过滤对象属性、将对象属性转换为数组等。在实际开发中,我们可以根据具体需求灵活运用这个方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65fa3d89d10417a222612664