我想转换这样的东西(例如在课堂上使用):
var classname = "username_admin color_red strength_good"
成:
myvalues = {
username: 'admin',
color: 'red',
strength: 'good'
}
目前这是我最接近的目标:
myvalues = $.map(classname.split(' '),function(el, i) {
var tmp = el.split('_');
var res = {};
res[tmp[0]] = tmp[1];
return res;
});
答案 0 :(得分:4)
我会像这样使用each()因为map()返回文档中所述的数组元素:
jQuery.map(array,callback(elementOfArray,indexInArray))
返回:数组
描述:将数组或对象中的所有项目翻译为新项目 项目数组。
var classname = "username_admin color_red strength_good";
var res = {};
$.each(classname.split(' '),function(i, el) {
var tmp = el.split('_');
res[tmp[0]] = tmp[1];
});
console.log(res);
答案 1 :(得分:3)
你想使用.each而不是.map,并在函数之外定义res:
var res = {};
$.each(classname.split(' '),function(i, el) {
var tmp = el.split('_');
res[tmp[0]] = tmp[1];
});
console.log(res);
答案 2 :(得分:0)
将您的代码更新为以下http://jsfiddle.net/manuel/4EvWw/2/
var classname = "username_admin color_red strength_good";
var res = {};
$.map(classname.split(' '),function(el, i) {
var tmp = el.split('_');
res[tmp[0]] = tmp[1];
});
console.log(res);