为什么括号改变我在javaScript中第7行的输出

问题描述 投票:0回答:1

JavaScript中使用数组时,这里我尝试使用reduce方法计算平均值。
我的问题在第 3 行: 不使用括号

avg + num/ arr.length
给出正确的输出,但 使用括号
(avg + num) / arr.length
给出错误的输出。

谁能解释一下这种有线行为背后的原因是什么?

const calcAverage = function (nums) {
  const average = nums.reduce(
    (avg, num, i, arr) => (avg + num) / arr.length,
    0
  );
  return average;
};
const avg = calcAverage([1, 1, 1, 1, 1]);
console.log(avg);
javascript arrays output reduce brackets
1个回答
0
投票

出现此行为的原因是运算的数学顺序发生了变化。在数学中,首先进行乘法/除法运算,然后进行加法/减法运算。通过添加括号,您首先执行加法,然后执行除法。没有括号,首先进行除法,然后进行加法

© www.soinside.com 2019 - 2024. All rights reserved.