2012-12-10 75 views
-4

我可以编写一个函数,它接受一个由“|”分隔的由数字或“对”组成的字符串:字符并生成一个对象,如下所示?每一对都有两个用逗号分隔的组件。重新排列JavaScript字符串组件

例子:

objectify("a,dog|b,cat|z,rat") --> {a: "dog", b: "cat", z: "rat"} 
objectify("one,uno|two,dos") --> {one: "uno", two: "dos"} 

谢谢!

+4

是的,你可以。试试看,找出你不知道该怎么做的零件的答案。 –

回答

2
function objectify(str) { 
    var obj = {}, 
     arr = str.split('|'); 
    for (i=0; i<arr.length;i++) { 
     var parts = arr[i].split(','); 
     obj[parts[0]] = parts[1]; 
    } 
    return obj; 
} 

FIDDLE

创建一个空的对象,分割字符串上|和迭代部分,上逗号再次分裂,并且在对象中使用该结果作为键/值对,并返回该对象完成后。

+1

这就是为什么人们将StackOverflow视为代码编写服务的原因。你为什么使用'new Object()'而不是'{}'? –

+0

谨慎给出解释? –

+0

@IHateLazy - 如果我使用新对象,那么这很重要吗?如果是这样,为什么? – adeneo

0
function objectify (str) { 
    var pairs = str.split("|"), 
     res = {}; 
    for (var i=0; i<pairs.length; i++) { 
     var parts = pairs[i].split(","); 
     res[parts.shift()] = parts.join(","); 
    } 
    return res; 
} 

退房arraystring功能。