我正在使用 API 和 Web 框架。
我有一個界面IResponse。它看起來像這樣
interface IResponse {
Id: string;
Name: string;
}
當我得到一個 API 回應時,我得到一個陣列并將值斷言為IResponse[]
但是,我正在使用的 Web 框架要求我將其轉換IResponse[]為IComboBoxOption[]具有以下界面的 Web 框架:
interface IComboBoxOption {
key: string;
text: string;
}
現在,我正在像這樣轉換它:
const convertedResults: IComboBoxOption[] = [];
const results = await APICall(productsRequest) as IResponse[];
results.forEach(r => {
convertedResults.push({
key: r.Id,
text: r.Name,
});
}
但是,結果量很大,forEach 回圈耗時過長。理想情況下,我想一起跳過轉換步驟,直接將 API 回傳值斷言為IComboBoxOption[].
這是可能嗎?
注意:我無法控制 API 回傳的屬性名稱,我必須使用這個 Web 框架。
uj5u.com熱心網友回復:
如果不迭代每個值,就無法更改屬性的名稱。但是您可以使用性能更高的方法:
使用 ES6 陣列方法往往作業得更快 https://leanylabs.com/blog/js-forEach-map-reduce-vs-for-for_of/
嘗試使用這個:
const convertedResults: IComboBoxOptions = results.map((r) => ({
key: r.Id,
text: r.Name,
}));
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/454277.html
