Fla*_*ame 6 javascript iterator javascript-objects
我正在尝试将请求(请参阅https://developer.mozilla.org/en-US/docs/Web/API/Request/headers)对象中的标头列表转换为普通的键/值对象。
// Create a Request object.
const req = new Request('https://example.com', {
headers: {
'X-Test-header': 'Test'
}
});
Run Code Online (Sandbox Code Playgroud)
遗憾的是,以下内容不起作用,因为该headers属性是iterator:
无法使用的结果:
const result1 = JSON.stringify(req.headers);
// result1 = `{}`
Run Code Online (Sandbox Code Playgroud)
可用的结果,但创建起来非常冗长:
const headers = {};
for(const [key, value] of req.headers.entries()) {
headers[key] = value;
}
const result2 = JSON.stringify(headers)
// result2 = `{'X-Test-Header': 'Test'}`
Run Code Online (Sandbox Code Playgroud)
我正在寻找某种单行(可能包括对象Array.from()上的一些其他方法,Request.headers例如.keys()/ .values()),以便我能够对结果进行字符串化。
您可以使用该Object.fromEntries()方法,然后将该对象字符串化,如下所示。该.fromEntries()方法将调用 headers 对象的迭代器(即:.entries())来获取 header 对象的条目,然后使用它来创建一个对象。然后您可以将其传递给以JSON.stringify()获取 JSON 字符串:
const req = new Request('https://example.com', {
headers: {
'X-Test-header': 'Test'
}
});
const result1 = JSON.stringify(Object.fromEntries(req.headers));
console.log(result1);Run Code Online (Sandbox Code Playgroud)