3

私はこのようなものを変換したいと思います(例えばクラスで使用されます):

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;
});

続行するには?http://jsfiddle.net/4EvWw/

4

3 に答える 3

4

map()はドキュメントに記載されているように配列の要素を返すため、each()を次のように使用します。

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);

ここでフィドルhttp://jsfiddle.net/4EvWw/1/

于 2011-11-24T11:09:41.527 に答える
3

.mapではなく.eachを使用し、関数の外部でresを定義します。

var res = {};
$.each(classname.split(' '),function(i, el) {
    var tmp = el.split('_');    
    res[tmp[0]] = tmp[1];
});

console.log(res);

http://jsfiddle.net/infernalbadger/4EvWw/3/

于 2011-11-24T11:08:58.010 に答える
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);
于 2011-11-24T11:12:13.953 に答える