是否可以编写一个 returns 三元运算符中的值的整个方法?

is it possible to write a whole method that returns a value in ternary operator?

在javascript中的三元运算符中可以做这种代码吗?如果是,我想我做错了,当我尝试下面的代码时,我只写了 return 整个 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);

我希望这会 return 像输出一样的实际值是 Integerfloat

“我希望这会 return 像输出一样的实际值是整数或浮点数。”

您可以将您的函数定义包裹在括号中,然后立即用 () 调用它。一个 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,函数将 运行 在它们所在的位置。我没有检查您代码的任何其他部分,因此此解决方案仅适用于“return 实际值,如输出将是整数或浮点数”部分。