У меня есть массив объектов, скажемВычислить состояние рекурсивно с помощью map/reduce?
let objs: foo[];
непреложный состояние объекта
let state: State;
и функция
transform: (state: State, obj: foo) => State;
Так transform
вычисляет новый State
от предыдущего использования информация с текущего obj
; если вы думаете, что «звучит как Redux для меня», вы можете быть правы.
Есть ли способ вызова transform
рекурсивно для каждого объекта из массива такой, что каждый рассчитывается state
является входным параметром для следующего вызова с использованием transform
map
и reduce
? Меня интересует только финальный номер state
.
Я пытался что-то вроде
let finalState = objs.reduce((prev: State, curr: foo) => transform(prev, curr), state)
reduce
но требует prev
и curr
быть типа foo
(тип массива), это не будет работать, очевидно.
Вы пробовали 'objs.foreach (х => this.transform (состояние, х))' ? – Rajesh
Это звучит так: 'сокращение' - это то, что вы ищете, за исключением * рекурсивной * части. Вы говорите, что у ваших объектов есть собственное свойство, которое представляет собой массив (?), Который вы хотите рекурсивно «уменьшить»? Вы запрашиваете рекурсивную реализацию 'reduce'? – deceze
Возможно, мне что-то не хватает, но я не понимаю, почему рекурсия включена. – haim770