1

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

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

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

4

2 回答 2

2

由于您使用的是 CoffeeScript 并且循环是 CoffeeScript 中的表达式,因此您可以改用推导

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

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

于 2012-05-17T15:43:12.263 回答
1

试试这个:

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

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

示例小提琴

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

于 2012-05-17T08:55:28.817 回答