在 ECMAScript 2019 中,Object 新增了一个 fromEntries() 方法。该方法可以将一个包含键值对的数组转换为一个对象。本文将详细介绍该方法的用法和示例代码,以及其在前端开发中的应用。
用法
Object.fromEntries() 方法接受一个数组作为参数,该数组包含若干个键值对,每个键值对都是一个长度为 2 的数组,第一个元素表示键,第二个元素表示值。该方法将返回一个对象,该对象的属性为键值对中的键,属性值为键值对中的值。
下面是该方法的语法:
Object.fromEntries(array)
其中,array 表示包含键值对的数组。
示例代码
下面是一个简单的示例,该示例将一个包含键值对的数组转换为一个对象:
const arr = [['name', '张三'], ['age', 18], ['gender', '男']]; const obj = Object.fromEntries(arr); console.log(obj); // { name: '张三', age: 18, gender: '男' }
在上面的示例中,我们定义了一个包含三个键值对的数组 arr,使用 Object.fromEntries() 方法将其转换为一个对象 obj,并将其输出到控制台。
应用
Object.fromEntries() 方法在前端开发中有许多应用场景。下面介绍几个常见的应用场景。
1. 将 URL 查询字符串转换为对象
当我们使用 AJAX 发送 HTTP 请求时,通常需要将请求参数转换为 URL 查询字符串。而在接收到服务端返回的数据后,我们通常需要将返回的 URL 查询字符串转换为对象。Object.fromEntries() 方法正是为这种场景而生的。
下面是一个示例代码,该代码将 URL 查询字符串转换为对象:
const queryString = 'name=张三&age=18&gender=男'; const arr = queryString.split('&').map(item => item.split('=')); const obj = Object.fromEntries(arr); console.log(obj); // { name: '张三', age: '18', gender: '男' }
在上面的示例中,我们首先将 URL 查询字符串 queryString 使用 split() 方法分割成一个包含若干个键值对的数组 arr,然后使用 Object.fromEntries() 方法将该数组转换为一个对象 obj。
2. 将 Map 转换为对象
在 JavaScript 中,Map 是一种非常有用的数据结构。但是在某些场景下,我们需要将 Map 转换为对象。Object.fromEntries() 方法可以帮助我们实现这一功能。
下面是一个示例代码,该代码将 Map 转换为对象:
const map = new Map([['name', '张三'], ['age', 18], ['gender', '男']]); const obj = Object.fromEntries(map); console.log(obj); // { name: '张三', age: 18, gender: '男' }
在上面的示例中,我们首先定义了一个 Map 对象 map,然后使用 Object.fromEntries() 方法将其转换为一个对象 obj。
3. 将数组转换为对象
在某些场景下,我们需要将一个数组转换为一个对象。Object.fromEntries() 方法可以帮助我们实现这一功能。
下面是一个示例代码,该代码将一个数组转换为一个对象:
// javascriptcn.com 代码示例 const arr = ['name', '张三', 'age', 18, 'gender', '男']; const entries = arr.reduce((result, item, index) => { if (index % 2 === 0) { result.push([item, arr[index + 1]]); } return result; }, []); const obj = Object.fromEntries(entries); console.log(obj); // { name: '张三', age: 18, gender: '男' }
在上面的示例中,我们首先定义了一个数组 arr,然后使用 reduce() 方法将其转换为一个包含若干个键值对的数组 entries。最后,使用 Object.fromEntries() 方法将该数组转换为一个对象 obj。
总结
本文介绍了 ECMAScript 2019 中新增的 Object.fromEntries() 方法的用法和示例代码,以及其在前端开发中的应用。该方法可以将一个包含键值对的数组转换为一个对象,常用于将 URL 查询字符串、Map 或数组转换为对象。希望本文对您有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656fbb7ed2f5e1655d81011d