在 ES10 中,引入了一个新的方法,叫做 Object.fromEntries。这个方法可以将一个键值对数组转换为一个对象。这个方法的用途非常广泛,可以用于处理各种数据格式,比如 JSON、URLSearchParams 等。
什么是 Object.fromEntries?
Object.fromEntries 是一个静态方法,它接收一个键值对数组作为参数,然后返回一个由这个数组转换而来的对象。
const entries = [['foo', 'bar'], ['baz', 42]]; const obj = Object.fromEntries(entries); console.log(obj); // { foo: 'bar', baz: 42 }
Object.fromEntries 的用途
Object.fromEntries 的主要用途是将键值对数组转换为对象。这在处理各种数据格式时非常有用,比如 JSON、URLSearchParams 等。
将 JSON 转换为对象
我们可以使用 JSON.parse 方法将 JSON 字符串转换为一个对象。但是,如果我们有一个键值对数组,我们可以使用 Object.fromEntries 方法来更方便地将它转换为一个对象。
const json = '{"foo": "bar", "baz": 42}'; const entries = Object.entries(JSON.parse(json)); const obj = Object.fromEntries(entries); console.log(obj); // { foo: 'bar', baz: 42 }
将 URLSearchParams 转换为对象
URLSearchParams 是一个用于处理 URL 查询参数的 API。我们可以使用它来解析 URL 中的查询参数,并将其转换为一个对象。
const searchParams = new URLSearchParams('foo=bar&baz=42'); const entries = [...searchParams.entries()]; const obj = Object.fromEntries(entries); console.log(obj); // { foo: 'bar', baz: '42' }
Object.fromEntries 和 Object.entries 的区别
Object.entries 是一个静态方法,它接收一个对象作为参数,然后返回一个由这个对象的键值对组成的数组。
const obj = { foo: 'bar', baz: 42 }; const entries = Object.entries(obj); console.log(entries); // [ ['foo', 'bar'], ['baz', 42] ]
Object.fromEntries 和 Object.entries 的作用是相反的。Object.entries 可以将一个对象转换为一个键值对数组,而 Object.fromEntries 可以将一个键值对数组转换为一个对象。
总结
Object.fromEntries 是一个非常有用的方法,它可以将键值对数组转换为一个对象。这个方法的用途非常广泛,可以用于处理各种数据格式,比如 JSON、URLSearchParams 等。在实际开发中,我们可以根据具体的需求,灵活运用这个方法,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65bcc316add4f0e0ff5b255b