@mirikkingg

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

Вопрос в следующем, есть два массива, нужно в первом массиве найти строку которая подается на вход, получить ее индекс, найти во втором массиве этот индекс, получить строку этого индекса и заменить на полученную строку в первом массиве

let a = [
`123`,
`1234`,
`12345`,
`123456`
]

let b = [
`a`,
`b`,
`c`,
`d`
]
  • Вопрос задан
  • 280 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
const arrA = a[0].trim().split("\n");
// [ "123", "1234", "12345", "123456" ]

const arrB = b[0].trim().split("\n");
// [ "a", "b", "c", "d" ]

const arrAB = arrA.map((str, index) => `${arrB[index]}: ${str}`);
// [ "a: 123", "b: 1234", "c: 12345", "d: 123456" ]

arrAB.join("\n")
/*
"a: 123
b: 1234
c: 12345
d: 123456"
*/


upd. ..и тут вопрос полностью изменили.
const a = ['123', '1234', '12345', '123456'];
const b = ['a', 'b', 'c', 'd'];

const replace = (search, a, b) => {
  const result = a.slice(); // копия
  const index = a.indexOf(search);
  if (index > -1) result.splice(index, 1, b[index]);
  return result;
}

replace('1234', a, b)
// [ "123", "b", "12345", "123456" ]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hahenty
@hahenty
('•')
b = b.map( s=>s.split( '\n' ) ).flat();
a = a.map( s => s.split('\n' ) ).flat().map( s => b[ +s ] );

скобочки
Ответ написан
Ваш ответ на вопрос

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

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