Использование метода replace string внутри forEach

#javascript

#javascript

Вопрос:

У меня есть массив, полный строк, которые я хотел бы перебрать и заменить любые вхождения ‘123’ на «.

Желаемый результат будет: ['hello', 'cats', 'world', 'dogs']

 let arr = ['he123llo', 'cats', 'wor123ld', 'dogs'];

arr.forEach(x => {
  x.replace('123', '');
});
 

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

1. const replacedStrings = arr.map(word => word.replace(/123/g, ''))

2. forEach() возвращает undefined , вы должны использовать Array.prototype.map() insted и, кстати, его лучше использовать .replace(/123/g, '') , если вы хотите заменить все вхождения ненужной подстроки

Ответ №1:

Используйте .map вместо этого, если можете — верните .replace вызов в обратном вызове:

 let arr = ['he123llo', 'cats', 'wor123ld', 'dogs'];

const result = arr.map(x => x.replace('123', ''));
console.log(result); 

Если вам нужно изменить массив на месте, также возьмите индекс и назначьте обратный .replace вызов этому индексу в массиве:

 let arr = ['he123llo', 'cats', 'wor123ld', 'dogs'];

arr.forEach((x, i) => arr[i] = x.replace('123', ''));
console.log(arr);