在 ES9 中,新增了一个方法 Object.fromEntries()
,它可以将一个由键值对组成的数组转换成一个对象。
语法
Object.fromEntries(iterable)
其中,iterable
是一个可迭代对象,每个元素都是一个键值对数组。
示例
下面是一个简单的示例:
const arr = [['name', 'Tom'], ['age', 18], ['gender', 'male']]; const obj = Object.fromEntries(arr); console.log(obj); // { name: 'Tom', age: 18, gender: 'male' }
深度学习
Object.fromEntries()
方法的实现原理其实很简单,它可以看做是 Object.entries()
方法的逆操作。
Object.entries()
方法用于将一个对象转换成由键值对组成的数组,它的语法如下:
Object.entries(obj)
其中,obj
是要转换的对象。
下面是一个示例:
const obj = { name: 'Tom', age: 18, gender: 'male' }; const arr = Object.entries(obj); console.log(arr); // [['name', 'Tom'], ['age', 18], ['gender', 'male']]
可以看到,Object.entries()
方法将对象转换成了由键值对组成的数组。而 Object.fromEntries()
方法则是将这个数组转换成了一个新的对象。
指导意义
Object.fromEntries()
方法的出现,使得我们可以更方便地将一个由键值对组成的数组转换成一个对象。这在一些场景下非常有用,比如:
- 将 URL 参数转换成对象
- 将表单数据转换成对象
- 将 JSON 数据转换成对象
下面是一个将 URL 参数转换成对象的示例:
const url = 'https://www.example.com/?name=Tom&age=18&gender=male'; const params = new URLSearchParams(url.search); const arr = [...params.entries()]; const obj = Object.fromEntries(arr); console.log(obj); // { name: 'Tom', age: '18', gender: 'male' }
可以看到,我们首先使用了 URLSearchParams()
方法将 URL 参数转换成了一个可迭代对象,然后使用了扩展运算符 ...
将它转换成了一个数组,最后使用了 Object.fromEntries()
方法将数组转换成了一个对象。
总结
Object.fromEntries()
方法是 ES9 中新增的一个方法,它可以将一个由键值对组成的数组转换成一个对象。它的出现使得我们可以更方便地将一些数据转换成对象,提高了开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/663ed0bdd3423812e4d0e068