Gremlin92
@Gremlin92
Целеустремленный

Вставить значения массива после пробелов?

Есть строка
var str="112 2123 3123 4123 232"
var mas[0] ="asd"
var mas[1] ="qwe"
var mas[2] ="zxc"
var mas[3] ="ghj"
var mas[4] ="lkp"

Как вставить после каждого числа соответствующее значение массива?
Чтобы получилось
"112 asd 2123 qwe 3123 zxc 4123 ghj 232 lkp"
  • Вопрос задан
  • 68 просмотров
Решения вопроса 3
nikolayshabalin
@nikolayshabalin
Автор профессиональных курсов в HTML Academy
Вообще вариантов огромное множество. Строку можно представить в виде массива, так как между числами всегда есть пробел.

const str = "112 2123 3123 4123 232";
const mas = ["asd", "qwe", "zxc", "ghj", "lkp"];

// Разделяем исходную строку по пробелам
const numbers = str.split(" ");

// Создаем пустую строку, в которую будем добавлять числа и значения массива
let result = "";

// Итерируемся по каждому числу и добавляем в результат соответствующее значение из массива
for (let i = 0; i < numbers.length; i++) {
  result += numbers[i] + " " + mas[i] + " ";
}

// Удаляем последний лишний пробел и выводим результат
console.log(result.trim());


Тут бы ещё задаться вопросом, а что если массивы будут неравномерными, например в одном 2 элемента, а во втором 4. Но это я уже оставлю вам =)
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const str= '112 2123 3123 4123 232';
const arr =  ['asd', 'qwe', 'zxc', 'ghj', 'lkp'];
const result = str
  .split(' ')
  .reduce((acc, cur, idx) => [...acc, cur, arr[idx]], [])
  .join(' ');
console.log(result);
// 112 asd 2123 qwe 3123 zxc 4123 ghj 232 lkp
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
let a=['asd','qwe','zxc','ghj','lkp'],i=0,s=' ',p='112 2123 3123 4123 232'.split(s).map(v=>v+s+a[i++]);

console.log(p.join(s));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы