在 ES9 中,新增了一个非常实用的对象属性扩展方法,称为 Object.fromEntries()。该方法可以将一个二维数组(键值对数组)转换成一个对象。
语法
Object.fromEntries(iterable)
参数
iterable:一个可迭代的对象。
返回值
该方法返回一个新对象,该对象的键值对由可迭代对象中的数组成员所组成。
示例
const arr = [['name', 'Lucy'], ['age', 18], ['gender', 'female']]; const obj = Object.fromEntries(arr); console.log(obj); // {name: "Lucy", age: 18, gender: "female"}
上面的代码中,我们创建了一个包含三个数组的二维数组。然后,我们将其作为参数传递给 Object.fromEntries() 方法,该方法将其转换为一个对象并返回。最后,我们打印这个对象,输出结果为 {name: "Lucy", age: 18, gender: "female"}。
除了上面的示例之外,这个方法还能用来将 Map 对象转换为对象:
const map = new Map([["name", "Lucy"], ["age", 18], ["gender", "female"]]); const obj = Object.fromEntries(map); console.log(obj); // {name: "Lucy", age: 18, gender: "female"}
深度学习
Object.fromEntries() 方法可以从其它对象类型(如 Map 对象)生成新的对象,这将更加容易,更具可读性和易维护性。与使用 Object.entries() 方法生成常规对象相比,该方法的效率更高。
指导意义
Object.fromEntries() 方法在项目中有很强的指导意义。以下是一些典型的应用场景:
1. 将 Map 对象转换为对象
const map = new Map([["name", "Lucy"], ["age", 18], ["gender", "female"]]); const obj = Object.fromEntries(map); console.log(obj); // {name: "Lucy", age: 18, gender: "female"}
2. 将数组转换为对象
const arr = [['name', 'Lucy'], ['age', 18], ['gender', 'female']]; const obj = Object.fromEntries(arr); console.log(obj); // {name: "Lucy", age: 18, gender: "female"}
在处理服务器响应数据时,我们通常会收到一个数组,我们可以使用该方法将其转换为一个对象,这样就可以在代码中更方便的使用和处理。
总结
Object.fromEntries() 方法是一个很方便的方法,能够将 Map 对象和二维数组转换成对象。该方法在项目开发中具有很强的指导意义。我们可以通过它更好的处理和管理服务器响应数据,提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64bf7a389e06631ab9bd5574