繁体   English   中英

Javascript:将字符串数组解析为具有自定义键名和值的对象

[英]Javascript: Parse string array into object with custom key names and values

因此,我有一个包含以下格式的自定义http标头列表的字符串:

var headers = "Referer=SomeValue|User-Agent=SomeUserAgent";

我使用管道作为分隔符将其拆分:

var splitHeaders = headers.split("|");

我剩下一个可以循环通过的数组,并且我正在尝试将该字符串数组转换为对象。 这是我到目前为止的内容:

var customHeaders = {};
for (var i in splitHeaders) {
    var data = splitHeaders[i].split("=");
    customHeaders[data[0]] = data[1];
}

我实际上试图创建的是一个名为customHeaders的对象,用于保存类似以下内容的值:

customHeaders = {
    "Referer":"https://someurl.com/",
    "User-Agent":"Some Browser"
};

难道我做错了什么?

您走在正确的轨道上。 使用更标准的for循环形式,使用splitHeaders的长度作为限制器:

for (var i = 0; i < splitHeaders.length; i++) {

工作示例:

 var headers = "Referer=SomeValue|User-Agent=SomeUserAgent"; var splitHeaders = headers.split('|'); var customHeaders = {}; for (var i = 0; i < splitHeaders.length; i++) { var data = splitHeaders[i].split("="); customHeaders[data[0]] = data[1]; } console.log(customHeaders); 


您还可以使用其他方法,例如使用reduce ,将项目数组转换为对象。

 var headers = "Referer=SomeValue|User-Agent=SomeUserAgent"; headers = headers .split('|') .reduce(function(obj, val) { var split = val.split('='); obj[split[0]] = split[1]; return obj; }, {}); console.log(headers); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM