簡體   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