jquery map 将虚线属性列表转换为对象

发布于 2024-12-18 08:06:03 字数 515 浏览 2 评论 0原文

我想将这样的东西(例如在课堂上使用)转换

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/

I would like to convert something like this (used in eg. in class):

var classname = "username_admin color_red strength_good"

into:

myvalues = {
    username: 'admin',
    color: 'red',
    strength: 'good'
}

Here's at present my closest reach:

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

How to continue? http://jsfiddle.net/4EvWw/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

流云如水 2024-12-25 08:06:03

我会像这样使用each(),因为map()返回数组的元素,如文档中所述:

jQuery.map(数组,回调(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/

I'd use each() like this because map() returns element of an array as stated in the docs:

jQuery.map( array, callback(elementOfArray, indexInArray) )
Returns: Array
Description: Translate all items in an array or object to new
array of items.

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

fiddle here http://jsfiddle.net/4EvWw/1/

把昨日还给我 2024-12-25 08:06:03

您想要使用 .each 而不是 .map,并在函数之外定义 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/

You want to use .each rather than .map, and define res outside of the function:

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/

风向决定发型 2024-12-25 08:06:03

将您的代码更新为以下 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);

updated your code to the following 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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文