Задать вопрос
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Как заменить строки в массиве?

При получение массива с элементами массива в виде строк (далее строки), нужно заменить каждую строку на 0 символ этой строки и вернуть уже измененный массив.

В данный момент выдает ошибку, в чем ошибка? А как реализовали бы данную задачу вы?

let words = [ 'application', 'development', 'business' ];

words.forEach(function(word, index) {
	words.replace(index, 1, word.charAt(0));
});

console.log(words);
  • Вопрос задан
  • 162 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
words.replace(index, 1, word.charAt(0));

Метода replace у массивов нет. Есть splice.

как реализовали бы данную задачу вы?

Собираем новый массив:

const newWords = words.flatMap(RegExp.prototype.exec.bind(/.{0,1}/));

// или

const newWords = [];
for (const n of words) {
  newWords.push(n[0] || '');
}

// или

const newWords = (function get(i, n = words[i]) {
  return n != null ? [ n.slice(0, 1), ...get(-~i) ] : [];
})(0);

Обновляем существующий:

words.forEach(([ n = '' ], i, a) => a[i] = n);

// или

words.splice(0, words.length, ...words.map(n => n.charAt()));

// или

for (let i = 0; i < words.length; i++) {
  words[i] = words[i].replace(/(?<=.).+/, '');
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы