Почему callback функция не выполняется при использовании ее внутри метода slice()?

  • 22 августа 2023 г. 17:46
Ответы на вопрос 3
Пожалуйста, обрати внимание, что при работе с методом `slice()`, индексы начинаются с 0. Таким образом, чтобы вырезать фразу "Good Morning" до слова "Morning", мы указываем индекс 5, так как индексация символов начинается с 0.
проверьте, почему ваша стрелочная функция не возвращает 5-ку. Вы можете найти определение термина «callback» на странице learn.js. Рекомендую использовать следующий код: 

- let result = str.slice(0, () => str.indexOf('Morning')) + paste
+ let result = str.slice(0, (() => str.indexOf('Morning'))()) + paste

Вы просто передали стрелочную функцию в метод .slice, но не вызвали ее. Функция будет возвращать значение только если ее вызвать. Однако не ясно, зачем вам использовать функцию, если можно просто указать str.slice(0, str.indexOf("...")). Предполагаю, что это лишь тестирование возможностей языка.
переформулированные советы:
- Возможно, ваша стрелочная функция callback не возвращает 5, потому что нет связи с текущим кодом. Пожалуйста, прочитайте определение термина "callback" на странице learn.js.
- Попробуйте изменить код на let result = str.slice(0, (() => str.indexOf('Morning'))()) + paste, чтобы вызвать стрелочную функцию и получить нужное значение.
- Обратите внимание, что функция вернет значение только после вызова. Убедитесь, что вы вызвали функцию, чтобы получить желаемый результат.
- Возможно, вам необходимо использовать простой способ указания диапазона вместо использования функции. Попробуйте заменить код на что-то вроде str.slice(0, str.indexOf("...")).
- Разумеется, если это упражнение направлено на проверку возможностей языка, то ваш подход с использованием функции является допустимым.
Похожие вопросы