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