這是代碼 -
界面 -
interface IWEXInterface {
readonly Date?: string;
"Exec Qty"?: string;
readonly Expiry?: string;
}
資料 -
let data: IWEXInterface[] = [
{
Date: "8/30/2021",
"Exec Qty": "13",
Expiry: "17/09/2021",
},
{
Date: "8/30/2021",
"Exec Qty": "15",
Expiry: "17/09/2021",
},
{
Date: "8/30/2021",
"Exec Qty": "13",
Expiry: "17/09/2021",
},
];
總結和分組物件 -
const sums = [
...data
.reduce((map, item) => {
const { Date: key, "Exec Qty": qty } = item;
const prev: IWEXInterface = map.get(key);
if (prev) {
prev["Exec Qty"]! = Number(qty);
} else {
map.set(key, Object.assign({}, item));
}
return map;
}, new Map())
.values(),
];
console.log(sums);
輸出 -
[ { Date: '8/30/2021', 'Exec Qty': '131513', Expiry: '17/09/2021' } ]
如何將字串轉換為數字。
想要的輸出 -
[ { Date: '8/30/2021', 'Exec Qty': 41, Expiry: '17/09/2021' } ]
………………………………………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………………………………………… …………
uj5u.com熱心網友回復:
嘗試用這個替換你的代碼,它會回傳一個字串,但是是正確的。
if (prev) {
prev["Exec Qty"]! = (Number(prev["Exec Qty"]) Number(qty)).toString()
} else {
map.set(key, Object.assign({}, item));
}
uj5u.com熱心網友回復:
只需轉換prev["Exec Qty"]為數字:
prev["Exec Qty"] = String(Number(prev["Exec Qty"]!) Number(qty));
uj5u.com熱心網友回復:
也許不使用 =速記?
prev["Exec Qty"] = Number(prev["Exec Qty"]) Number(qty);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/387147.html
標籤:javascript 打字稿
