lodash:在._map期间添加一个新字段

时间:2017-03-03 11:10:02

标签: lodash

我有一个这种类型的对象数组:

response.data = [{Name = "name1", Type = "text"}, {Name = "name2", Type = "text"}...]

我正在尝试为所有对象添加和启动属性。

我试过了:

   var newObj = _.map([response.data], function (value) {
               return { 
                value: "property : " + value.Name , 
                type: "my type is : " + value.Type, 
                active : false 
              };
   });

但它没有添加属性

你知道如何用lodash做到这一点吗?

2 个答案:

答案 0 :(得分:2)

因为lodash map将输入作为集合的第一个参数。您的response.data已经是一个集合,并且您将其包装在另一个数组([response.data])中。

要修复它,请避免包装它:

var newObj = _.map(response.data, function (value) {
    return {
        value: "property : " + value.Name,
        type: "my type is : " + value.Type,
        active: false
    };
});

请考虑JavaScript Array natively has map method,所以你不需要lodash。您可以通过以下方式编写您的代码:

var newObj = response.data.map(function (value) {
    return {
        value: "property : " + value.Name,
        type: "my type is : " + value.Type,
        active: false
    };
});

答案 1 :(得分:1)

var newObj = _.map(response.data, function (value) {
               return { 
                value: "property : " + value.Name , 
                type: "my type is : " + value.Type, 
                active : false 
              };
   });