JavaScript中如何将请求原始headers重构为指定键值对数组?
实现结论
该请求头格式转换需求完全可以在JavaScript中实现,不需要依赖额外第三方库,原生语法即可完成。
原始数据规律
你提供的原始headers数据遵循固定排列规则:
- 数组内元素按顺序两两配对
- 偶数序号(0、2、4...)对应项存储请求头的键名
- 奇数序号(1、3、5...)对应项存储请求头的键值
具体实现代码
// 原始待转换headers数据 const rawHeaders = [ {"0": "Host"}, {"1": "localhost:3000"}, {"2": "Connection"}, {"3": "keep-alive"}, {"4": "sec-ch-ua"}, {"5": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"102\", \"Google Chrome\";v=\"102\""} ] // 第一步:提取所有对象内的值,按顺序拼成一维平铺数组 const flatHeaderList = rawHeaders.map(item => Object.values(item)[0]) const result = [] // 第二步:步长设为2遍历,两两配对生成键值对对象 for (let i = 0; i < flatHeaderList.length; i += 2) { const headerKey = flatHeaderList[i] const headerValue = flatHeaderList[i + 1] result.push({ [headerKey]: headerValue }) }
转换输出结果
代码运行后得到的结果完全匹配你需要的键值对数组格式:
[ { "Host": "localhost:3000" }, { "Connection": "keep-alive" }, { "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"102\", \"Google Chrome\";v=\"102\"" } ]
注:你给出的目标格式示例中
Host键位置存在引号书写笔误,上述输出为标准合法的JavaScript对象结构,可直接用于后续请求逻辑。
内容的提问来源于stack exchange,提问作者lavender1
相关产品推荐
相关产品推荐

