我的 Pinia 商店中有特定物品
showDeliveryLinesOptions: undefined as
| undefined
| {
options: {
title: boolean;
orderStatus: boolean;
expectedDelivery: boolean;
price: boolean;
quantity: boolean;
totalPrice: boolean;
};
deliveryId: string | undefined;
}[]
我想分配一個 showDeliveryLinesOptions 陣列,因為它將具有特定的 deliveryId 并且所有選項物件屬性都設定為 false。現在,我有這個硬編碼的任務:
detailsStore.showDeliveryLinesOptions = detailsStore.deliveries.map(
(delivery) => {
return {
deliveryId: delivery.DeliveryId,
options: {
expectedDelivery: false,
orderStatus: false,
price: false,
quantity: false,
title: false,
totalPrice: false,
},
};
}
);
但我想讓它更靈活并遍歷所有選項鍵,而不是像現在這樣撰寫所有鍵并分配錯誤值 x 次。我怎樣才能讓它在打字稿中發生?
uj5u.com熱心網友回復:
您可以使用reduce
with 方法Object.keys
將options
屬性設定為 false :
detailsStore.showDeliveryLinesOptions = detailsStore.deliveries.map(
(delivery) => {
return {
deliveryId: delivery.DeliveryId,
options: Object.keys(delivery.options).reduce((acc,curr)=>{
return {...acc,[curr]:false},
},{})
};
}
);
例子
let options = {
expectedDelivery: true,
orderStatus: true,
price: false,
quantity: true,
title: true,
totalPrice: true,
}
let initOptions = Object.keys(options).reduce((acc, curr) => ({ ...acc,
[curr]: false
}), {})
console.log(initOptions)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/507922.html