如果我有以下字符串:
mickey mouse WITH friend:goofy WITH pet:pluto
javascript中获取该字符串并将所有“键:值”对提取到某个对象变量中的最佳方法是什么?冒号是分隔符。尽管我可能无法保证 WITH 会在那里。
如果我有以下字符串:
mickey mouse WITH friend:goofy WITH pet:pluto
javascript中获取该字符串并将所有“键:值”对提取到某个对象变量中的最佳方法是什么?冒号是分隔符。尽管我可能无法保证 WITH 会在那里。
myString.split(/\s+/).reduce(function(map, str) {
var parts = str.split(":");
if (parts.length > 1)
map[parts.shift()] = parts.join(":");
return map;
}, {});
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;
}
也许像
"mickey WITH friend:goofy WITH pet:pluto".split(":")
它将返回数组,然后循环遍历数组。
字符串模式必须至少以一种或另一种方式保持一致。使用 javascript 的 split 函数并按共同出现的单词进行拆分(我们说空间 Atleast)然后您需要使用 : 作为键来拆分每个单词,并将所需的值放入一个对象中。希望那是你渴望的。
你可以这样做,例如:
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);