在 ECMAScript 2019 中,JavaScript 增加了一个新的对象方法 Object.fromEntries(),它可以帮助我们更方便地操作对象。
什么是 Object.fromEntries()?
Object.fromEntries() 方法接受一个二维数组作为参数,每个子数组包含两个元素,第一个元素表示对象的键,第二个元素表示对象的值。例如:
-- -------------------- ---- ------- ----- ------- - - ------- ------- ------- --- -- ----- --- - ---------------------------- ----------------- -- -------- ------- - ---- ------ ---- -- -
上面的代码将二维数组转换为一个对象,并将其赋值给obj变量。在这个例子中,entries数组包含两个子数组,每个子数组有两个元素,其中'foo'是键,'bar'是值,'baz'是另一个键,'42'是它的值。
Object.fromEntries() 的作用
Object.fromEntries() 的作用是将一个二维的键值对数组转换为一个对象。这个方法的主要作用是减少手动创建对象的代码量。
在不使用 Object.fromEntries() 的情况下,我们需要创建一个对象,并在一个循环中为其添加属性和值。应该如下:
-- -------------------- ---- ------- ----- ------- - - ------- ------- ------- --- -- ----- --- - --- --- ------ ----- ------ -- -------- - -------- - ------ - ----------------- -- -------- ------- - ---- ------ ---- -- -
如我们可以看到,手动创建对象的代码比较冗长。使用新的 Object.fromEntries() 方法可以大大简化代码量。
使用 Object.fromEntries() 的示例代码
让我们看一个更有价值的例子:从一个 URL 查询参数字符串中提取参数,并将它们存储在一个对象中。例如:从类似于以下 URL 的字符串'http://example.com/?foo=bar&baz=42'中提取参数:
const paramsString = 'foo=bar&baz=42'; const searchParams = new URLSearchParams(paramsString); const entries = searchParams.entries(); const obj = Object.fromEntries(entries); console.log(obj); // expected output: { foo: "bar", baz: "42" }
在上面的代码中,我们将查询参数字符串转换为一个URLSearchParams对象,然后使用它的entries()方法获取所有key/value键值对,最后使用Object.fromEntries()方法将键值对数组转换为一个对象。
总结
ECMAScript 2019 中的新对象方法 Object.fromEntries() 是一个有用的方法,它可以帮助我们轻松创建对象。这个方法的使用非常简单,只需要给它一个包含键值对的二维数组,即可将其转换为一个对象。使用 Object.fromEntries() 方法可以减少我们手动创建对象的代码量,并且可以更好地优化我们的代码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e95c31f6b2d6eab34aa182