2017-09-29 1 views
-2

Ich habe eine Zeichenfolge wie folgt: var test = "oldsite1: newsite1, oldsite2: newsite2";Wie Schlüsselwertpaare in einer Zeichenfolge zu Iterieren

Ich möchte darüber iterieren, um die Werte zu erhalten. Ich weiß, dass ich in ein String-Array wie folgt konvertieren kann: var myArray = test.split (",");

aber dann bekomme ich die ganze Zeichenfolge auf die "," und ich möchte "oldsite1" und "newsite1" extrahieren.

Hilfe geschätzt. Danke.

Antwort

1

Split wieder jedes Array-Element und erhalten den Schlüssel als erstes Element und der Wert als die zweite

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

Ich würde split verwenden, um die Zeichenfolge in ein Array zu konvertieren, und dann können Sie Array-Methoden verwenden, um zu manipulieren.

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

Ihr Eingabeformat ist nahe genug, um gültige JSON, dass ich es den Rest des Weges nehmen würde und dann JSON.parse verwenden Sie es in ein Javascript-Objekt zu drehen. (Obwohl, wenn Sie Ihre Daten in JSON in erster Linie haben kann, das wäre vorzuziehen, ...)

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

können Sie kombinieren split() und map() Ihre String in ein Array von Objekten zu konvertieren:

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); 
 
})

Verwandte Themen