一个JSON对象到很少的集合对象中

时间:2014-01-13 15:08:04

标签: javascript backbone.js underscore.js

我在这里有一个益智游戏。我有以下收藏:

var TagsCollection = Backbone.Collection.extend({
    model: TagModel,
    parse : function(response) {
        console.log(response);
        // code to go
        return response;
    }
});

现在获取以下示例JSON对象:

{
    id: 10149682, 
    published: "2014-01-13 08:23:00", 
    title: "Title", 
    tags: "tag1,tag2,tag3,tag4"
}

现在我想要的是插入一些代码,将现有的响应重新映射为以下格式:

[{name: "tag1"},  {name: "tag2"}, {name: "tag3"}, {name: "tag4"}]

并将其加载到集合中。 (一个重要的注意事项 - 使用Backbone / Underscore方法 - 例如_.chain / _.reduce等。)

2 个答案:

答案 0 :(得分:2)

您可split tags键:

var tags = response.tags.split(',');

map生成的数组

return _.map(tags, function(tag) {
    return {name: tag};
});

答案 1 :(得分:0)

您还可以尝试以下方式:

var tags= "tag1,tag2,tag3,tag4";

var newArr = tags.split(',').map(function(tag){ return {name: tag} });

重要:这适用于IE9 +,如果您需要在IE8或更早版本中运行,则需要输入。您可以完善说明here