如何以编程方式构造对象数组

时间:2012-05-17 08:51:02

标签: jquery arrays coffeescript

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

[{"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)

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

2 个答案:

答案 0 :(得分:2)

由于您在CoffeeScript中使用CoffeeScript和循环是表达式,因此您可以使用comprehension代替:

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

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

答案 1 :(得分:1)

试试这个:

var pingUsers = ["xxx", "yyy", "zzz"];
var tagged_user_array = [];

$.each(pingUsers, function(index, value)  {
    tagged_user_array.push({ "nickname" : value });
});

Example fiddle

我不确定为什么你的变量用@作为前缀,因为这在javascript中无效。