在前端开发过程中,我们经常需要处理对象,其中涉及到了对象属性的增删改查等操作。在 ES9 中,新增了 Object.fromEntries() 方法,它可以将由键值对组成的数组转化为对象。本文将探讨它的应用和使用场景。
Object.fromEntries() 的基本用法
Object.fromEntries() 方法接收一个由键值对组成的数组,将其转换为一个对象。
示例代码如下:
-- -------------------- ---- ------- ----- ------- - - ------- ------- ------- --- -- ----- --- - ---------------------------- ----------------- -- -------- ------- - ---- ------ ---- -- -
上述代码中,我们定义了一个数组 entries,它由两个含有两个元素的子数组组成。通过 Object.fromEntries() 方法,我们将这个数组转化为了一个具有两个属性的对象 obj。
Object.fromEntries() 方法的实践应用
将一个对象转换为 URL 查询字符串
使用 Object.entries() 方法可以将一个对象转换为 URL 查询字符串,使用 Object.fromEntries() 方法可以将 URL 查询字符串转换为对象。因为 URL 查询字符串以键值对的形式进行参数传递,所以 Object.fromEntries() 方法在这种场景下非常有用。
示例代码如下:
const params = new URLSearchParams('?key1=value1&key2=value2'); const obj = Object.fromEntries(params); console.log(obj); // expected output: { key1: "value1", key2: "value2" }
上述代码中,我们首先定义一个 URLSearchParams 对象,这个对象包含了 URL 查询字符串 key1=value1&key2=value2。然后利用 Object.fromEntries() 方法将这个字符串转换为对象。最终得到了包含了两个属性的对象。
将 Map 转换为对象
Map 对象是一种键值对集合的数据类型,可以将一个 Map 转换成一个对象。
示例代码如下:
const map = new Map(); map.set('foo', 'bar'); map.set('baz', 42); const obj = Object.fromEntries(map.entries()); console.log(obj); // expected output: { foo: "bar", baz: 42 }
上述代码中,我们首先定义一个 Map 对象,该 Map 包含了两个键值对。然后使用 map.entries() 方法得到一个新的 Iterator 对象,再将其转换为一个包含两个属性的对象。
从二维数组生成对象
在开发过程中,经常会接收到由后端返回的形如二维数组的数据。借助 Object.fromEntries() 方法,我们可以轻松地将这样的数据转化为对象,其中第一个元素为键,第二个元素为值。
示例代码如下:
const arr = [['name', 'Tom'],['age', 18],['gender', 'Male']]; const obj = Object.fromEntries(arr); console.log(obj); // expected output: {name:"Tom",age:18,gender:"Male"}
综合应用
在实际开发中,Object.fromEntries() 方法也可以与 Object.entries() 方法联合起来使用。Object.entries() 方法可以将对象转换为数组,再进行相关处理,最终使用 Object.fromEntries() 方法得到新的对象。
示例代码如下:
const obj = { name:'Tom', age: 18 }; const newObj = Object.fromEntries(Object.entries(obj).map(([key, val]) => [key.toUpperCase(), val])); console.log(newObj); // expected output: { NAME: "Tom", AGE: 18 }
上述代码中,我们首先定义了一个对象 obj,有两个属性name与age,然后再使用 Object.entries() 方法将它转换为数组类型。接着,利用 map() 方法遍历数组,将每个键名转换为大写,并重新组合成新的键值对数组。最后,再利用 Object.fromEntries() 方法将数组转换为对象。得到的 newObj 的键名全部转换为了大写字母。
总结
Object.fromEntries() 方法可以将由键值对组成的数组转换为对象,方便地进行对象操作。本文介绍了 Object.fromEntries() 方法的基本用法及其实践应用,包括将一个对象转换为 URL 查询字符串、将 Map 转换为对象、从二维数组生成对象和综合应用等,相信这些功能会在实际开发中帮到你。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645460cc968c7c53b084ca67