@Stop_Loll
Дизайнер

Как заменить в тексте определенные строки на js?

Здравствуйте, нужна помощь в вопросе, есть два массива которые содержат текст из textarea разбитый по строкам, в первом массиве набор цифр [123,321,213], а во втором массиве - "код" в котором так же есть эти цифры, но их нужно заменить на новые которые подтягиваются из первого массива но умножаются на 2, вот так выглядит второй массив [привет, это, новый, массив, 123, в, котором, есть, цифры, 321, и, 213], а на выходе мне нужен такой результат [привет, это, новый, массив, замена_1, в, котором, есть, цифры, замена_2, и, замена_3].
Мои наработки ниже, я конечно получил что хотел, но всё приходит не так как нужно, а разбито и результат из-за цикла возвращает дубли но с одним изменением, хотелось бы как-то это сшить в одно.
var pA = textarea.value.split('\n');
    for (var i = 0, ln = pA .length; i < ln; ++i) {
        let cA= FunUm(pA[i]);

let As= '('+cA.h+', '+cA.s+', '+cA.l+')';

const str = textarea_2;
const search = pA[i];
const replace = As;

const str_a = textarea_2.split("\n");
 
var result = str.split(search).join(replace).split("\n");
var arraysAreEqual = str_a.sort().toString()!=result.sort().toString();
if(arraysAreEqual){

    result_As.value += result;
    console.log(result);

}
    }
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
[123, 321, 213]
  .sort((a, b) => b - a)
  .reduce(
    (acc, cur) => acc.replace(`${cur}`, `${cur * 2}`),
    "привет, это, новый, массив, 123, в, котором, есть, цифры, 321, и, 213",
  );
// "привет, это, новый, массив, 246, в, котором, есть, цифры, 642, и, 426"
Ответ написан
Ваш ответ на вопрос

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

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