如果我有以下字符串:
mickey mouse WITH friend:goofy WITH pet:pluto
javascript中获取该字符串并将所有“key:value”对提取到某个对象变量中的最佳方法是什么?冒号是分隔符。虽然我可能会或可能不会保证WITH会在那里。
答案 0 :(得分:1)
myString.split(/\s+/).reduce(function(map, str) {
var parts = str.split(":");
if (parts.length > 1)
map[parts.shift()] = parts.join(":");
return map;
}, {});
答案 1 :(得分:1)
var array = str.match(/\w+\:\w+/g);
然后使用":"
拆分数组中的每个项目,以获取键值对。
以下是代码:
function getObject(str) {
var ar = str.match(/\w+\:\w+/g);
var outObj = {};
for (var i=0; i < ar.length; i++) {
var item = ar[i];
var s = item.split(":");
outObj[s[0]] = s[1];
}
return outObj;
}
答案 2 :(得分:0)
也许像
"mickey WITH friend:goofy WITH pet:pluto".split(":")
它将返回数组,然后循环遍历数组。
答案 3 :(得分:0)
字符串模式必须以一种或另一种方式保持一致。 使用javascript的split函数并按共同出现的单词拆分(我们说空间Atleast) 然后,您需要使用:as key来拆分它们,并将所需的值转换为对象。 希望这是你渴望的。
答案 4 :(得分:0)
你可以这样做,例如:
var myString = "mickey WITH friend:goofy WITH pet:pluto";
function someName(str, separator) {
var arr = str.split(" "),
arr2 = [],
obj = {};
for(var i = 0, ilen = arr.length; i < ilen; i++) {
if ( arr[i].indexOf(separator) !== -1 ) {
arr2 = arr[i].split(separator);
obj[arr2[0]] = arr2[1];
}
}
return obj;
}
var x = someName(myString, ":");
console.log(x);