在 ES11 中,我们新增了一个非常实用的方法,叫做 Object.fromEntries()
。这个方法可以将一个二维数组或者可迭代对象转换为一个对象。今天,我们将会详细讲解这个方法的使用,以及它的学习和指导意义。
理解 Object.fromEntries() 方法的参数
这个方法只有一个参数,就是一个二维数组或者可迭代对象。这个参数中,一维数组的第一个元素是对象的键,第二个元素是对象的值。让我们看一下具体的示例代码:
const entries = [['a', 1], ['b', 2], ['c', 3]]; const obj = Object.fromEntries(entries); console.log(obj); // 输出结果: { a: 1, b: 2, c: 3 }
我们可以看到,我们将一个二维数组传入 Object.fromEntries()
方法中,这个方法返回了一个对象,对象的键和值就是根据二维数组中的元素生成的。
我们还可以使用 Map
对象来作为参数传入 Object.fromEntries()
方法,让我们看一下示例代码:
const map = new Map([['a', 1], ['b', 2], ['c', 3]]); const obj = Object.fromEntries(map); console.log(obj); // 输出结果: { a: 1, b: 2, c: 3 }
使用 Object.fromEntries() 方法的场景
Object.fromEntries()
方法在实际应用中非常灵活,我们可以使用它来解决各种问题。下面是几个常见的应用场景:
1. 将 URLSearchParams 对象转换为对象
我们经常会使用 URLSearchParams 对象来解析 URL 查询字符串。但是 URLSearchParams 对象并不方便操作,我们需要将它转换为对象。这个时候就可以使用 Object.fromEntries()
方法了。示例代码:
const params = new URLSearchParams('name=Rose&age=18&gender=female'); const obj = Object.fromEntries(params); console.log(obj); // 输出结果: { name: "Rose", age: "18", gender: "female" }
2. 将对象转换为数组
有时候我们需要将对象转换为数组。这个时候我们先将对象转换为二维数组,然后通过 Object.fromEntries()
方法再将其转换为对象。示例代码:
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); const newArray = Object.fromEntries(entries); console.log(newArray); // 输出结果: { a: 1, b: 2, c: 3 }
3. 合并两个对象
我们可以将两个对象合并成一个新对象。示例代码:
const obj1 = { a: 1, b: 2 }; const obj2 = { c: 3, d: 4 }; const obj3 = Object.fromEntries(Object.entries(obj1).concat(Object.entries(obj2))); console.log(obj3); // 输出结果: { a: 1, b: 2, c: 3, d: 4 }
总结
Object.fromEntries()
方法是一个非常实用的方法,我们可以使用它来解决各种问题。在实际应用过程中,我们需要理解其参数的数据结构,以及它的应用场景。只有掌握了这些,我们才能写出高效、可维护的代码,提升我们的开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e06491f6b2d6eab3b78be9