为数组的每个项添加一个额外的属性

时间:2014-07-09 10:48:49

标签: javascript underscore.js

我有一组名为documents的项目。每个项目都具有相同的属性。我想为每个名为serviceShortCode的项添加一个附加属性。我写了以下代码来实现这个

documents = _.map(documents, function (doc) {
                return _.extend({                    
                    serviceShortCode: View.getServiceName(doc.publishedIn)      
                });
            });

一旦这段代码完成执行,我得到一个只有serviceShortCode的对象数组,所有其他属性都消失了。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

您似乎错过了来自扩展调用的文档。

更改

return _.extend({                    
    serviceShortCode: View.getServiceName(doc.publishedIn)
});

return _.extend(doc, {                    
    serviceShortCode: View.getServiceName(doc.publishedIn)
});

或者

return _.extend({}, doc, {                    
    serviceShortCode: View.getServiceName(doc.publishedIn)
});

确保原始对象保持不变。