我有一个这样的字符串: var test =" oldsite1:newsite1,oldsite2:newsite2&#34 ;;
我想迭代这个来获取值。 我知道我可以像这样转换为字符串数组: var myArray = test.split(",");
然后我把整个字符串放到","我想提取" oldsite1"和" newsite1"。
帮助表示感谢。 感谢。
答案 0 :(得分: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]);
})
答案 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
答案 2 :(得分:0)
您的输入格式足够接近有效的JSON,我将在剩下的时间内使用它,然后使用JSON.parse
将其转换为javascript对象。 (虽然如果你首先可以用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
答案 3 :(得分: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);
})