@AlinaMoskaluk

Как собрать этот текст из массива и придать ему первоначальный вид?

Отрывок из текста А.С Пушкин, Капитанская дочка был разбит на небольшие кусочки и помещен в массив.
Необходимо собрать этот текст из массива и придать ему первоначальный вид.

Текст до разбивки на части:

"В ту же ночь приехал я в Симбирск, где должен был пробыть сутки для закупки нужных вещей,
что и было поручено Савельичу. Я остановился в трактире. Савельич с утра отправился по лавкам"

Массив:
const array = [
'я в Симбирск,',
'в трактире.',
'с утра',
'В ту же ночь',
'Я остановился',
'для закупки',
'что и было поручено Савельичу.',
'приехал,',
'где должен был',
'нужных вещей',
'отправился по лавкам',
'пробыть сутки',
'Савельич'
]

итоговый текст должен быть собран из массива array и результат записать в переменную result

Как это сделать?
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
@dGololobov
начинающий
Ну вы не сможете это сделать автоматически.
Поэтому, я подозреваю, что эта задача на понимание порядка элементов в массиве, и в способах получения этих элементов.
Предлагаю создать вспомогательный массив для определения верного порядка фраз, затем получить верно отсортированный массив фраз, ну и следом просто объединить его в строку через пробел.
Скорее всего ответ будет такой:
const array = ['я в Симбирск,', 'в трактире.', '...']
const order = [3, 7, 0, 8, 11, 5, 9, 6, 4, 1, 12, 2, 10]
const strings = order.reduce((strings, number) => [...strings, array[number]], [])
const result = strings.join(' ')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
если решать перебором, но у вас там где "приехал," лишняя запятая и я ее убрал.

https://jsfiddle.net/7bxemj15/1/

const srcText = "В ту же ночь приехал я в Симбирск, где должен был пробыть сутки для закупки нужных вещей что и было поручено Савельичу. Я остановился в трактире. Савельич с утра отправился по лавкам";

const array = [
'я в Симбирск,',
'в трактире.',
'с утра',
'В ту же ночь',
'Я остановился',
'для закупки',
'что и было поручено Савельичу.',
'приехал',
'где должен был',
'нужных вещей',
'отправился по лавкам',
'пробыть сутки',
'Савельич'
];

let words = srcText.split(" ");
let result = "";

let part = "";
for(let i = 0; i < words.length; ++i){
  part += part ? " " + words[i] : words[i];

  let item = array.find(it => it === part);

  if(item){
    result += part + " ";
    part = "";
  }
}

console.log(result)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Санкт-Петербург
от 160 000 до 220 000 ₽
01 мар. 2021, в 10:03
2000000 руб./за проект
01 мар. 2021, в 09:29
1 руб./за проект