是否可以在javascript中的三元運算子中執行這種代碼?如果是,我認為我做錯了,當我嘗試下面的代碼時,我寫的只是回傳整個function(){}方法
let products = [
{
price: 2.6,
quantity: 5,
},
{
price: 5.9,
quantity: 5,
},
{
price: 2.3,
quantity: 5,
},
{
price: 4.9,
quantity: 5,
}
];
let sumtotal = products.length > 1 ? function(){
let total = 0;
for(const { price, quantity } of products) {
total = (price * quantity);
}
return parseFloat(total).toFixed(2);
} : function() {
let total = (products[0].price * products.quantity);
return parseFloat (total).toFixed(2);
};
console.log(sumtotal);
我希望這會回傳一個實際值,例如輸出是Integeror float。
uj5u.com熱心網友回復:
“我希望這會回傳一個實際值,例如輸出是整數或浮點數。”
您可以將函式定義包裝在括號中,然后()立即呼叫它。一個IIFE。你已經有了return,所以你在這方面做得很好。
有變化:
let sumtotal = products.length > 1 ? (function(){
let total = 0;
for(const { price, quantity } of products) {
total = (price * quantity);
}
return parseFloat(total).toFixed(2);
})() : (function() {
let total = (products[0].price * products.quantity);
return parseFloat (total).toFixed(2);
})();
有了 IIFE,這些功能將在它們所在的位置運行。我沒有檢查您代碼的任何其他部分,因此此解決方案僅適用于“回傳實際值,例如輸出將是整數或浮點數”部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/439883.html
標籤:javascript 目的 条件运算符
上一篇:無需回圈即可獲取物件陣列的名稱
