【问题标题】:How to construct an array of objects programmatically如何以编程方式构造对象数组
【发布时间】:2012-05-24 20:07:21
【问题描述】:

我想以编程方式构造一个对象数组。我期待的最终结果是这样的

[{"nickname":"xxx"},{"nickname":"yyy"},{"nickname":"zzz"}]

这是我的代码

@tagged_user_array = []
//pingUsers is the array which stored the list or nicknames 'xxx', 'yyy' and 'zzz'
$.each @pingUsers, (index, nick) =>
   @tagged_user_array.push(nick)

使用上面的代码,我无法获得预期的结果。为了获得预期的结果,我需要修改什么?

【问题讨论】:

    标签: jquery arrays coffeescript


    【解决方案1】:

    由于您使用的是 CoffeeScript,而循环是 CoffeeScript 中的表达式,您可以使用 comprehension 代替:

    pingUsers = ["xxx", "yyy", "zzz"]
    tagged_user_array = ({nickname: value} for value in pingUsers)
    

    演示:http://jsfiddle.net/ambiguous/w4ugV/1/

    【讨论】:

    • 超级小调整...删除分号。 :-)
    【解决方案2】:

    试试这个:

    var pingUsers = ["xxx", "yyy", "zzz"];
    var tagged_user_array = [];
    
    $.each(pingUsers, function(index, value)  {
        tagged_user_array.push({ "nickname" : value });
    });
    

    Example fiddle

    我不确定你为什么在变量前面加上 @,因为这在 javascript 中是无效的。

    【讨论】:

    • @s,没有括号,没有var,和(...) =>表示CoffeeScript。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2010-09-10
    相关资源
    最近更新 更多