2017-09-29 41 views
-2

我有這樣的字符串: var test =「oldsite1:newsite1,oldsite2:newsite2」;如何迭代字符串中的鍵值對

我想迭代這個來獲取值。 我知道我可以轉換爲這樣的字符串數組: var myArray = test.split(「,」);

但後來我得到了整個字符串到「,」,我想提取「oldsite1」和「newsite1」。

幫助讚賞。 謝謝。

回答

1

再次分割每個數組項目,並拿到鑰匙作爲第一要素和值作爲第二

var test = "oldsite1: newsite1, oldsite2: newsite2"; 
 
var items= test.split(','); 
 

 
items.forEach(function(item) { 
 
    var keyValue = item.split(":") 
 
    console.log("this is the key: " + keyValue[0]); 
 
    console.log("this is the value: " + keyValue[1]); 
 
})

0

我會使用split將字符串轉換爲數組,然後您可以使用數組方法來操作。

var test = "oldsite1: newsite1, oldsite2: newsite2"; 
 
var split = test.split(','); 
 

 
split.forEach(function(item) { 
 
    console.log(item); 
 
}) 
 

 
console.log(split) //outputs an array of key values

0

你的輸入格式很接近,我把它的方式休息,然後用JSON.parse把它變成一個JavaScript對象有效的JSON。 (不過,如果你可以在第一時間在JSON數據,這會是最好...)

var test = "oldsite1: newsite1, oldsite2: newsite2" 
 

 
// wrap field names in quotes, and put curlies around the whole thing: 
 
test = '{"'+ test.replace(/([:,]) /g, '"$1 "') + '"}'; 
 
var obj = JSON.parse(test); 
 

 
// Now you can use obj as a regular old hash table: 
 
console.log("All keys are ", Object.keys(obj)); 
 
console.log("oldsite1's value is ", obj.oldsite1); 
 
// and so on

0

您可以結合split()map()到您的字符串轉換爲對象的數組:

var test = "oldsite1: newsite1, oldsite2: newsite2"; 
 
testArr = test.split(',').map(function(ele, idx){ 
 
    var arr = ele.split(':'); 
 

 
    var retVal = {}; 
 

 
    retVal[arr[0]] = arr[1].trim(); 
 
    return retVal; 
 
}); 
 

 
console.log(testArr); 
 

 
testArr.forEach(function(ele, idx) { 
 
    var keyName = Object.keys(ele)[0]; 
 
    var keyValue = ele[keyName]; 
 
    console.log('keyName: ' + keyName + ' keyValue: ' + keyValue); 
 
})