2017-03-05 89 views
0

给定以下具有键 - 值对的字符串,如何编写通用函数以将其映射到对象?将键值对映射到对象的字符串

目前,我只是分裂:;以获取相关数据,但它似乎不是一个干净的方法。

这是我的代码的时刻:

var pd = `id:S76519;sku:S76519;name:StarGazer 3000;model:ICC74`; 
var tempPd = pd.split(';'); 
for (i = 1; i < tempPd.length; i++) { 
    var b = tempPd[i].split(':'); 
    console.log(b[1]); 
} 
+1

那么你在做什么是你可以做的唯一的事情。如果你有一个字符串,并且你想根据你期望找到的语法来提取信息,那么你解析字符串并构建一个数据结构。 – Pointy

+2

如果你知道没有;和:在键和值,那么为什么不呢? – user489872

+0

你可以显示你目前使用的代码吗?如果没有看到你已有的东西,是否有更清晰的方法很难知道。 – StriplingWarrior

回答

1

怎么样使用减少:

function objectify(str) { 
 

 
\t return str.split(";").reduce(function (obj, item) { 
 
\t \t var a = item.split(":"); 
 
\t \t obj[a[0]] = a[1]; 
 
\t \t return obj; 
 
\t }, {}); 
 

 
} 
 

 
var strObj = "id:S76519;sku:S76519;name:StarGazer 3000;model:ICC74"; 
 
console.log(objectify(strObj));

或:

function objectify(str){ 
 

 
return str.split(";").reduce((obj,item)=>{ 
 
    var a = item.split(":"); 
 
    obj[a[0]]=a[1]; 
 
    return obj; 
 
},{}); 
 

 
} 
 
    
 
var strObj = "id:S76519;sku:S76519;name:StarGazer 3000;model:ICC74"; 
 
console.log(objectify(strObj));

+1

伟大工程。谢谢! – methuselah

相关问题