#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);