在 ES8 中使用 Object.entries() 方法和 Object.fromEntries() 方法转换对象属性和值
在前端开发中,对象是我们经常会用到的一种数据类型。在实际开发过程中,我们可能会遇到将对象的属性和值互相转换的需求,比如将数组转换成对象、将对象转换成数组等等。在 ES8 中,新增了两个方法:Object.entries() 和 Object.fromEntries(),能够非常方便地实现对象属性和值的互相转换。
Object.entries() 方法
Object.entries() 方法能够将一个对象的可枚举属性转换成一个由 [key, value] 组成的二元数组,这个方法返回该数组。这个方法主要用于将一个对象的属性集合转换成键值对集合。
示例代码:
const obj = { name: 'Jack', age: 21, gender: 'male' }; const arr = Object.entries(obj); console.log(arr); // [ ['name', 'Jack'], ['age', 21], ['gender', 'male'] ]
根据上面的示例代码,我们可以发现,Object.entries() 方法会把对象的 key 和 value 分别存储在二元数组里面,并将这些二元数组放在一个数组中返回。
Object.fromEntries() 方法
Object.fromEntries() 方法能够将一个由 [key, value] 组成的二元数组转换成一个新的对象,这个方法返回该对象。这个方法主要用于将一个键值对集合转换成一个对象集合。
示例代码:
const arr = [ ['name', 'Jack'], ['age', 21], ['gender', 'male'] ]; const obj = Object.fromEntries(arr); console.log(obj); // { name: 'Jack', age: 21, gender: 'male' }
根据上面的示例代码,我们可以发现,Object.fromEntries() 方法会将二元数组转换成一个对象,并将这个对象返回。
实际应用
除了上面的简单示例,Object.entries() 和 Object.fromEntries() 方法还有更多的用途。在实际开发中,我们可以将这两个方法结合起来使用,实现更加方便和高效的代码编写。
示例代码:
const obj = { name: 'Jack', age: 21, gender: 'male' }; // 将对象属性和值互换 const swappedObj = Object.fromEntries( Object.entries(obj).map(([key, value]) => [value, key]) ); console.log(swappedObj); // { Jack: 'name', 21: 'age', male: 'gender' }
根据示例代码,我们可以看到,这种方法可以快速地实现对象属性和值互换的功能,同时代码也非常简洁易懂。
总结
Object.entries() 和 Object.fromEntries() 方法是 ES8 中新增的两个方法,它们能够非常方便地实现对象属性和值互相转换。在实际开发中,这两个方法也能够帮助我们更加高效地编写代码。掌握这两个方法,能够让前端开发工作更加便捷、高效!
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65ab61b9add4f0e0ff5051df