@daima

Почему не работает reduce?

Не пойму - так работает:

labelsConv = labels.reduce(
        (prev, tec) => {
          Array.isArray(tec) ? prev.push(tec.join(" ")) : prev.push(tec)
          return prev
        },
        []      );


А вот этот код

const labelsConv = labels.reduce(
        (prev, tec, i) => 
          Array.isArray(tec) ? prev[i]=tec.join(" ") : prev[i]=tec
        ,
        []
      );


выдает ошибку "TypeError: Cannot assign to read only property '1' of string 'bla bla-bla'"
  • Вопрос задан
  • 238 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Во втором случае вы возвращаете в колбеке не массив prev, а tec.join(" ") или tec
И во второй итерации получаете ошибку, в попытке изменить в строке свойство '1', о чем, собственно, и написано в тексте ошибки:
TypeError: Cannot assign to read only property '1' of string 'bla bla-bla'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы