我有一个这样的数组:var arr = ["1:a", "2:b", "3:c"];
从上面的数组我想要一个对象:var obj = { "1": "a", "2": "b", "3": "c" }
我在做:
var obj = {}
$.each(arr, function (i, value) {
var valueSplit = value.split(':');
// I don't know how to make the object
});
编辑: 我的问题标记为重复,而我提出的问题与标记的重复问题完全相反。
答案 0 :(得分:2)
从您的代码中,代替您可以撰写的评论
obj[valueSplit[0]] = valueSplit[1];
这可以写成简单的简化:
var obj = arr.reduce(function(x,y) { return z = y.split(':'), x[z[0]]=z[1], x; }, {});
var arr = ["1:a", "2:b", "3:c"];
var obj = arr.reduce(function(x,y) { return z = y.split(':'), x[z[0]]=z[1], x; }, {});
document.write(JSON.stringify(obj));
答案 1 :(得分:1)
只需添加作业。
var obj = {}
$.each(arr, function (i, value) {
var valueSplit = value.split(':');
obj[valueSplit[0]] = valueSplit[1];
});
答案 2 :(得分:0)
只需尝试这个
var arr = ["1:a", "2:b", "3:c"];
var map = {};
arr.forEach( function(val){
var keyVal = val.split( ":" );
map[ keyVal[ 0 ] ] = keyVal[ 1 ];
});
map
是您要查找的对象。
<强>样本强>
var arr = ["1:a", "2:b", "3:c"];
var map = {};
arr.forEach( function(val){
var keyVal = val.split( ":" );
map[ keyVal[ 0 ] ] = keyVal[ 1 ];
});
document.body.innerHTML += JSON.stringify( map, 0, 4 );