如何以最簡單的方式重新格式化物件陣列并推送到 formGroup,如下所示。如何避免重復使用產品詞?例如:傳播運算子
for (const product of products) {
this.productArray.push(
this.fb.group({
// How to simplify this code
id: product.product_id,
name: product.product_name,
chargers: product.sales_chargers,
class: product.class_name,
price: product.price,
}),
);
}
uj5u.com熱心網友回復:
我沒有看到從 OP 的產品密鑰到 OP 的組密鑰的公式化轉換。一種替代方法是捕獲資料中的轉換。那么至少,你可以清楚地定義映射并知道去哪里編輯它......
const keyMap = { product_id: 'id', product_name: 'name', sales_chargers: 'chargers', class_name: 'class', price: 'price' };
const product2Group = product => Object.fromEntries(
Object.entries(product).map(([k, v]) => [ keyMap[k] , v ])
);
然后,我們可以將 OP 回圈替換為...
this.productArray = products.map(product2Group);
演示...
const keyMap = {
product_id: 'id',
product_name: 'name',
sales_chargers: 'chargers',
class_name: 'class',
price: 'price'
};
const product2Group = product => Object.fromEntries(
Object.entries(product).map(([k, v]) => [ keyMap[k] , v ])
);
const products = [
{ product_id: 4, product_name: 'my product four', sales_chargers: 'chargers 4', class_name: 'classy class 4', price: 44 },
{ product_id: 5, product_name: 'my product five', sales_chargers: 'chargers 5', class_name: 'classy class 5', price: 55 }
]
const result = products.map(product2Group);
console.log(result);
uj5u.com熱心網友回復:
如果不提及參考,您將無法訪問屬性。沒有任何解決方案product都比您的代碼復雜。
但是,您可能希望使用.map更優雅的方式轉換陣列的每個專案。
this.productArray = products.map(product =>
this.fb.group({
id: product.product_id,
name: product.product_name,
chargers: product.sales_chargers,
class: product.class_name,
price: product.price,
})
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/442548.html
標籤:javascript 有角度的 打字稿
