Я пытаюсь внести изменения в переменную с помощью пользовательского оператора (я объясню это теперь яснее).
У меня есть массив чисел, и у меня есть reduce()
. Первые 2 числа будут добавлены, затем во втором сокращении они будут вычтены, затем умножаются, делятся и экспонируются. В основном:Переменная, содержащая оператор в Javascript
[1,2,3,4,5] -> 0
1+2=3
3-3=0
0*4=0
0/5=0 -> 0
Так что я видел реализацию, как это:
f => f.reduce((a,b,c) => [a + b, a - b, a * b, a/b, a ** b][c % 5])
И задавался вопросом, могу ли я сделать массив операторов в некотором роде, и осуществить это, как это?
f => f.reduce((a,b,c) => a [+,-,*,/,**][c%5] b)
Очевидно, что этот синтаксис неверен, но в терминах идеи существует нечто подобное?
Поскольку операторы не являются объектами первого класса, нет, это не представляется возможным, к сожалению, (игнорируя 'eval'). – deceze