создание функции с асинхронным вызовом

#javascript #reactjs #asynchronous

#javascript #reactjs #асинхронный

Вопрос:

итак, у меня есть массив со строкой внутри, и то, что я хочу сделать, это заменить какое-то слово другим словом, поэтому я делаю что-то вроде этого

   let secFilm = result.data.films
  for (let s = 0; s < secFilm.length; s  ) {
    secFilm[s] = secFilm[s].replace(/http/g, "https");
  }
  

но я знаю, если этот метод недостаточно эффективен, потому что он применяется только к result.data.films , в то время как помимо этих данных есть и другие данные

как я могу создать асинхронную функцию, чтобы данные можно было использовать динамически, поэтому мне не нужно создавать один за другим метод для других данных. Спасибо.

Комментарии:

1. используйте map метод.

2. Вам не нужна async функция, подойдет обычная функция.

3. Создать функцию, которая принимает массив в качестве аргумента?

4. @ThomasRyan я не знаю, как это сделать в моем коде выше, сэр сри

5. Использование map будет похоже: let secFilm = result.data.films.map(s => s.replace(/http/g, "https"))

Ответ №1:

я только что понял, как это делается, ребята

вот как я это делаю

 let secFilm = result.data.films
let secPilot = result.data.pilots

  function secure(arr){
    for (let k = 0; k < arr.length; k  ) {
      arr[k] = arr[k].replace(/http/g, "https");
    }
  }

  secure(secFilm, secPilot)
  

так что мне не нужно создавать асинхронную функцию, спасибо @Thomas
я знаю, что это не лучший метод, но я думаю, что он лучше, чем раньше

Ответ №2:

 function convertHTTP(arr=[]) {
    arr.forEach((val, index, arr) => {
        arr[index] = val.replace(/http/g, "https");
    });
}
  

Я думаю, вам не нужна асинхронная функция, вместо этого вы можете использовать указанную выше функцию, если вам нужно изменить значение объекта везде, в противном случае вы можете использовать функцию map, которая создает новый массив значений, содержащий https, и исходный массив также будет сохранен с помощью HTTP

функция отображения

 function convertHTTP(httpArr=[]) {
    return httpArr.map(val => val.replace(/http/g, "https"));
}
  

Поправьте меня, если я ошибаюсь. Спасибо