#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"));
}
Поправьте меня, если я ошибаюсь. Спасибо