Cookie 是 Web 开发中常用的一种数据存储方式,它可以用来保存用户的登录信息、购物车信息等。在前端开发中,我们有时需要将 Cookie 字符串转换为对象来进行操作,例如获取 Cookie 中的某个值或者设置 Cookie 中的某个值。在 ECMAScript 2019 中新增了 Object.fromEntries 方法,可以很方便地将 Cookie 字符串转换为对象。
Object.fromEntries 方法
Object.fromEntries 方法是 ECMAScript 2019 新增的一个静态方法,它可以将一个键值对的数组转换为一个对象。这个方法接收一个键值对的数组作为参数,返回一个由这些键值对构成的对象。
const entries = [['foo', 1], ['bar', 2]]; const obj = Object.fromEntries(entries); console.log(obj); // {foo: 1, bar: 2}
将 Cookie 字符串转换为对象
将 Cookie 字符串转换为对象的方法很简单,只需要将 Cookie 字符串按照分号(;)分隔成多个键值对,然后再将每个键值对按照等号(=)分隔成键和值,最后将这些键值对组成一个数组作为 Object.fromEntries 方法的参数即可。
function parseCookie(cookieStr) { const entries = cookieStr.split(';').map(str => str.trim().split('=')); return Object.fromEntries(entries); } const cookieStr = 'foo=1; bar=2'; const cookieObj = parseCookie(cookieStr); console.log(cookieObj); // {foo: "1", bar: "2"}
上面的代码中,我们先使用 split 方法将 Cookie 字符串按照分号(;)分隔成多个键值对,然后再使用 map 方法将每个键值对按照等号(=)分隔成键和值,最后将这些键值对组成一个数组作为 Object.fromEntries 方法的参数,得到一个由这些键值对构成的对象。
指导意义
利用 ECMAScript 2019 的 Object.fromEntries 方法将 Cookie 字符串转换为对象,可以让我们更加方便地操作 Cookie 数据。在实际开发中,我们可以将这个方法封装成一个工具函数,方便多次调用。
// javascriptcn.com 代码示例 function parseCookie(cookieStr) { const entries = cookieStr.split(';').map(str => str.trim().split('=')); return Object.fromEntries(entries); } function setCookie(key, value, options) { const cookieOptions = options || {}; const cookieStr = `${key}=${value}` + (cookieOptions.expires ? `; expires=${cookieOptions.expires.toUTCString()}` : '') + (cookieOptions.path ? `; path=${cookieOptions.path}` : '') + (cookieOptions.domain ? `; domain=${cookieOptions.domain}` : '') + (cookieOptions.secure ? '; secure' : ''); document.cookie = cookieStr; } function getCookie(key) { const cookieObj = parseCookie(document.cookie); return cookieObj[key]; } setCookie('foo', '1', {expires: new Date(Date.now() + 1000 * 60 * 60 * 24)}); console.log(getCookie('foo')); // "1"
上面的代码中,我们封装了三个函数:parseCookie、setCookie 和 getCookie。其中,parseCookie 函数用于将 Cookie 字符串转换为对象,setCookie 函数用于设置 Cookie,getCookie 函数用于获取 Cookie。通过这些函数的组合,我们可以很方便地操作 Cookie 数据,实现一些常用的功能。
总结
利用 ECMAScript 2019 的 Object.fromEntries 方法可以很方便地将 Cookie 字符串转换为对象,从而方便我们操作 Cookie 数据。在实际开发中,我们可以将这个方法封装成一个工具函数,方便多次调用。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/657d5d8bd2f5e1655d82e43b