![](/img/trans.png)
[英]Returning results of groupBy() on an array of objects from a map() in lodash results in [object]
[英]lodash map returning array of objects
我有一個對象的arrray我希望將數據從醫學轉換為類型字符串。 唯一的問題是,不是返回對象數組,而是讓醫學數組回歸。
輸入示例:
data = [{medicine: 1234, info: "blabla"},{medicine: 9585, info: "blabla"},..]
期望的輸出:
data = [{medicine: "1234", info: "blabla"},{medicine: "9585", info: "blabla"},..]
我得到了什么? 一系列醫學數字。
這是我的代碼:
var dataMedicines = _.map(data, 'medicine').map(function(x) {
return typeof x == 'number' ? String(x) : x;
});
Lodash非常強大,但為了簡單起見,請查看此演示
var data = [{ medicine: 1234, info: "blabla" }, { medicine: 9585, info: "blabla" }]; dataMedicines = _.map(data, function(x) { return _.assign(x, { medicine: x.medicine.toString() }); }); console.log(dataMedicines);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js"></script>
或者只是本機ES6解決方案:
const dataMedicines = data.map(({medicine, info}) => ({medicine: `${medicine}`, info}));
優點是這是一個功能更強大的解決方案,可以保留原始數據。
我猜你想把所有葯號“轉換”成字符串?
如果是這種情況,您不需要先映射。
var dataMedicines = _.map(data, function(x){
var newObj = JSON.parse(JSON.stringify(x)); // Create a copy so you don't mutate the original.
newObj.medicine = newObj.medicine.toString(); // Convert medicine to string.
return newObj;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.