2017-03-03 59 views
0

我有一個類型的對象的數組中添加一個新的領域:lodash:一個._map

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

因爲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
var newObj = _.map(response.data, function (value) { 
       return { 
       value: "property : " + value.Name , 
       type: "my type is : " + value.Type, 
       active : false 
       }; 
    });