我正在尝试基于React中的数学表达式对数组进行切片。但是,更漂亮的扩展名不允许我这样做,因为它删除了括号,使表达式不正确。

这是示例:

const paginateItems = items.slice(
      pageIndex * itemsPerPage,
      (pageIndex * itemsPerPage) * 2
    )


更漂亮的改变为

const paginateItems = items.slice(
      pageIndex * itemsPerPage,
      pageIndex * itemsPerPage * 2
    )


我该如何解决这个问题,以免其表达不正确?

最佳答案

我该如何解决这个问题,以免其表达不正确?


它不会使您的表达不正确。 *是左关联的,这意味着a * b * c(a * b) * c完全相同。该代码中的括号对结果没有任何影响。

如果您的表达式为pageIndex * (itemsPerPage * 2),则如果itemsPerPage确实很大(假设itemsPerPage * 2为2或更高)。因此,在这种情况下,我希望Prettier能够让他们保持孤独。但是对于pageIndex * itemsPerPagepageIndex根本没有任何作用。



¹“在编程中” —在数学世界中,(pageIndex * itemsPerPage) * 2中的括号也不会有任何区别,因为乘法是可传递的(我想就是这个词):()pageIndex * (itemsPerPage * 2)相同与a * b * c相同。但是在编程中,我们处理的数值类型在较大范围内具有有限的范围和/或有限的精度,因此,两个乘法运算发生的顺序很重要。

09-25 16:53