Ругается на index, пишет:
[ts] Cannot find name 'index'. [2304]
const result: any = sort.map((val, i) => ({ ...val, value: index++ }), index = 1)
Пример тестовый, мне нужно работать именно со значением index
initialValue - есть только у reduce. У остальных методов, вторым аргументом передается this, который будет использован в callback, переданном в первом аргументе.
Но даже не смотря на это, ошибка просто в том, что нигде не объявлена переменная index.
Для решения достаточно объявить ее:
var index = 1;
const result: any = sort.map((val, i) => ({ ...val, value: index++ }))
Хотя странно, почему тут не использовать параметр i, в котором и передается индекс текущего элемента.
именно в thisArg я хочу объявлять свою переменную index
Объявлять внутри выражения нельзя. Однако можно передать туда объект с полем index, заменив при этом стрелочную функцию на обычную
const result: any = sort.map(function(val, i) { return { ...val, value: this.index++ };}, {index: 1});
Однако в этом случае доступа извне к нему тоже не будет, поэтому в любом случае если index понадобится снаружи, придется объявлять переменную отдельно.
Хочу хранить переменную index как this и использовать её
Для этого эта переменная в любом случае должна быть объявлена и передана вторым параметром. Однако с просто числом данный вариант невозможен, так как его невозможно будет изменить между вызовами.
То есть, сделав this++ внутри callback будет ошибка Invalid left-hand side expression in postfix operation
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости