随着 JavaScript 语言的不断发展和完善,新的特性和方法也不断被添加进来,其中 ES9(ECMAScript 2018)中添加的 Object.fromEntries() 方法就是一个非常实用的新特性。
什么是 Object.fromEntries()?
首先,了解一下 Object.fromEntries() 的作用。它的作用就是根据给定的键值对数组,创建一个新的对象。
比如,我们有一个键值对数组:
const entries = [['foo', 1], ['bar', 2]];
现在我们使用 Object.fromEntries() 方法就可以将这个数组转化为一个对象:
const obj = Object.fromEntries(entries); console.log(obj); // 输出结果: // { // foo: 1, // bar: 2 // }
这样,我们就得到了一个以 'foo' 和 'bar' 作为属性名,以 1 和 2 作为属性值的新对象了。
Object.fromEntries() 的指导意义
Object.fromEntries() 方法的出现,主要是为了解决 JavaScript 编程中一些常见的问题。
在开发过程中,我们常常需要把键值对数组转化为一个对象,比如:
- 把从后端接口获取到的数据进行格式化;
- 把从表单中获取的数据转化为对象;
- 把从 localStorage 中获取的数据进行格式化。
在这些场景中,Object.fromEntries() 方法可以大大方便我们的编程过程,减少不必要的麻烦。
Object.fromEntries() 的示例代码
下面,我们来看一些 Object.fromEntries() 方法的示例代码。
示例 1:从 URLSearchParams 对象中创建对象
我们可以使用 URLSearchParams 对象来处理 URL 中的参数,其中 entries() 方法返回一个 Iterator 对象,这个对象是键值对的数组。
我们可以用 Object.fromEntries() 方法将这个数组转化为一个对象。
-- -------------------- ---- ------- ----- ------ - --- ------------------------------- ----- --- - ------------------------------------- ----------------- -- ----- -- - -- ---- ---- -- ---- --- -- -
示例 2:从表单数据创建对象
表单数据通常是一组键值对的数组,我们可以使用 Object.fromEntries() 方法将其转化为一个简单的对象。
<form> <input name="foo" value="1" /> <input name="bar" value="2" /> </form>
-- -------------------- ---- ------- ----- ---- - ------------------------------- ----- -------- - --- --------------- ----- --- - --------------------------------------- ----------------- -- ----- -- - -- ---- ---- -- ---- --- -- -
示例 3:从 localStorage 中读取数据
我们可以使用 localStorage.getItem() 方法获取到本地存储的数据,但是它返回的是一个字符串,我们需要将字符串转化为键值对数组,然后再使用 Object.fromEntries() 方法将其转化为对象。
const data = localStorage.getItem('data'); const entries = JSON.parse(data); const obj = Object.fromEntries(entries); console.log(obj);
总结
Object.fromEntries() 方法是 ES9 中一个非常实用的新特性。它可以方便地将键值对数组转化为对象,从而简化我们的编程过程,提高开发效率。
在实际使用过程中,我们可以结合其他一些 API,比如 URLSearchParams 对象、FormData 对象等来使用,以满足不同的场景需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6485653848841e989443f737