Object.fromEntries
Object.fromEntries
作为Object对象的新方法,可以视为Object.entries
的反向操作
该方法可以把键值对列表转化为一个对象,入参可以是一个Map、Set、Array类型,或者其他实现了可迭代协议的可迭代对象。(可迭代协议和可迭代对象,可以参考
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Iteration_protocols
https://es6.ruanyifeng.com/#docs/iterator
const entries = new Map([
['foo', 'bar'],
['baz', 42]
]);
const obj = Object.fromEntries(entries);
console.log(obj);
// 可以快捷地将Map和Set实例转化为对象类型
// expected output: Object { foo: "bar", baz: 42 }
现在也可以通过Object.fromEntries
方法 + RLSearchParams
将location上面的url search参数,快速转化为对象类型:
Object.fromEntries(new URLSearchParams(location.search))
浏览器兼容性方面,除了ie,其他主流新版本浏览器均支持该方法。
URLSearchParams
该方法传入location.search作为参数时,会自动解析url参数,并且会返回一个可迭代的URLSearchParams
对象(虽然他和Map\Set有着类似的api,比如get、set、delete。但是他却不是Map和Set的实例
兼容性方面,同样是不支持ie,其他主流浏览器均支持