在 ES12 中,新增了一个强大的对象方法: Object.fromEntries(),该方法能够快速将由键值对数组(如 Map、Map.entries())组成的数组转换为对象。
Object.fromEntries() 方法还可以让我们更方便地处理对象的操作,尤其是在函数式编程中经常用到的一些场景。在本篇文章中,我们将深入学习该方法并且通过示例代码来更好地理解它的使用及指导意义。
什么是 Object.fromEntries() 方法?
从名称来看,Object.fromEntries() 方法可以让我们从一个由键值对数组组成的数组中创建一个新对象。其实,它可以实现 Map 和 Object 对象之间的互相转换(从 Map 对象转成普通对象或者从 Object 对象转成 Map 对象)。
如何使用 Object.fromEntries() 方法?
让我们先看一下 Object.fromEntries() 方法的语法:
Object.fromEntries(iterable)
其中,iterable 是一个可迭代对象(例如 Map 和 Map.entries())。
现在,我们来具体看一下 Object.fromEntries() 方法的使用及注意事项。
Map 对象转换为普通对象
通过 Object.fromEntries() 方法,我们可以将 Map 对象转换为普通对象形式,以便于在日常开发中使用。下面是一个示例代码:
const map = new Map([ ["foo", "bar"], ["baz", 42], ]); const obj = Object.fromEntries(map); console.log(obj); // {foo: "bar", baz: 42}
在上面的代码中,我们首先创建了一个 Map 对象并将它的键值对作为数组传入。然后,我们通过 Object.fromEntries() 方法将它转换为普通对象形式。
对象转换为 Map 对象
在某些情况下,我们需要将普通对象转换为 Map 对象。下面是一个示例代码:
const obj = { foo: "bar", baz: 42, }; const map = new Map(Object.entries(obj)); console.log(map); // Map(2) {"foo" => "bar", "baz" => 42}
在上面的代码中,我们首先创建了一个普通对象并将它作为参数传入 Object.entries() 方法中。该方法返回一个由键值对数组组成的数组。然后,我们通过 new Map() 构造函数将该数组转换为 Map 对象。
自定义对象转换为 Map 对象
除了普通对象外,我们还可以使用 Object.fromEntries() 方法将自定义对象转换为 Map 对象。下面是一个示例代码:
-- -------------------- ---- ------- ----- --- - - -- --- -- --- ------------------ --- -- ----- ------- - ---------------------------- --- -- ----------- ---- ----- --- - --- ------------- ----------------- -- ------ ---- -- --- --- -- ---
在上面的代码中,我们首先定义了一个自定义对象,并且它的属性名称不是字符串形式(如 Symbol 或者数字)。然后,我们通过 Object.entries() 方法将它转换为键值对数组形式。最后,我们通过 map() 方法将数组中的键值映射成字符串形式,以便于在 Map 对象中使用。
Object.fromEntries() 方法的指导意义
Object.fromEntries() 方法的出现,为我们的开发工作带来了很多便利和效率。当我们需要在普通对象和 Map 对象之间进行切换时,它可以极大地减少代码量和复杂度。
总结一下,Object.fromEntries() 方法的用处如下:
将 Map 对象转换为普通对象形式。
将普通对象转换为 Map 对象形式。
帮助我们快速地进行函数式编程中常见的操作,如过滤、映射等操作。
结语
Object.fromEntries() 方法在 ES12 中是一个新的对象方法,它为我们的开发工作带来了很多便利和效率。通过本文的学习,我们可以更好地理解该方法的使用及指导意义,进一步提高我们的开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e1a7e6f6b2d6eab3cd86ff