我正在尝试将我的uri转换为对象值,作为我转换的成功级别,并使用冒号分割为数组值。但我无法将这些转换为常规对象。任何人都建议我一个好方法。我和我一起起诉了下划线。
这是我的代码:
var ar = ["id:1231", "currency:GBP"];
var outPut = _.map(ar, function(item){
return '{' + item + '}';
})
console.log(outPut); //consoles as ["{id:1231}", "{currency:GBP}"]
我怎样才能得到这样的结果:
var object = {id:1231, currency:GBP}
下划线有什么构建方法吗?
答案 0 :(得分:4)
有几种方法可以解决这个问题,而Underscore为他们提供帮助。
一种方法是使用_.reduce
逐步将键/值对添加到最初为空的"结果"对象:
var obj = _.reduce(ar, function(result, item) {
var keyAndValue = item.split(":");
result[keyAndValue[0]] = keyAndValue[1];
return result;
}, {});
请注意,您可以执行the same without Underscore,除非您必须支持IE 8或更早版本。
答案 1 :(得分:1)
没有任何第三方库:
var output = {} ;
var ar = ["id:1231", "currency:GBP"];
ar.forEach(function (item) {
var values = item.split(':') ;
output[values[0]] = values[1] ;
}) ;
输出console.log(output)
:
Object {id: "1231", currency: "GBP"}
答案 2 :(得分:0)
这是使用jQuery的另一个版本:
var newObj = {};
$.each( ar, function( i, v ) {
var kv = v.split( ":" );
newObj[ kv[0] ] = kv[ 1 ];
});
// newObj = {id:"1231", currency:"GBP"}