как добавить номера строк в начало каждой строки в строке в javascript [закрыто]

avatar
enesn
8 апреля 2018 в 06:07
1702
2
-7

У меня есть строка вида

Hi,
My
Name
is
Mike

Как мне превратить это в :

1.Hi,
2.My
3.Name
4.is
5.Mike
Источник
Jeroen Heier
8 апреля 2018 в 07:20
0

Привет, добро пожаловать в переполнение стека. Пожалуйста, перейдите по ссылке Как задать для получения более подробной информации о том, как задать вопрос и соответствующим образом обновить свой вопрос.

Pierre
8 апреля 2018 в 07:23
0

серьезно ? пожалуйста, попробуйте сделать что-нибудь, прежде чем спрашивать здесь. Мы не являемся службой написания кода. На ваш вопрос можно ответить с помощью нескольких приемов, таких как замена новых строк на новые строки + счетчик. Но вы должны сначала попробовать что-то самостоятельно

enesn
8 апреля 2018 в 08:40
0

Прошу прощения, пытался написать сам и не смог. Я не знал правил. Я погуглил и нашел ответ только для C и некоторых других языков, версии js не было. Я только сегодня присоединился. Я бы хотел, чтобы я не получил столько плохих баллов

zero_cool
28 апреля 2019 в 01:14
0

Боже, дай этому парню передышку - совершенно правильный вопрос, и он задает первый раз - черт возьми

Ответы (2)

avatar
Renato Gama
8 апреля 2018 в 06:10
7

var numbered = `Hi,
My
Name
is
Mike`.split('\n').map((line, index) => `${index + 1}. ${line}`).join('\n')

console.log(numbered)

Разбор решения;

  1. Мы берем исходную строку, а затем разделяем ее по символу разрыва строки, таким образом, мы получаем массив строк (по одной на строку)
  2. Map — это функция, которая позволяет нам применять функцию преобразования к каждому элементу массива, возвращая новый с новыми элементами.
  3. Map передает текущий элемент массива плюс индекс, начинающийся с нуля. Мы объединяем индекс с текущим элементом, чтобы получить ожидаемую строку
  4. .
  5. Поскольку у нас все еще есть массив (но нам нужна строка), мы используем метод объединения. Метод соединения объединяет все элементы в массиве с заданным символом, в этом случае мы снова передаем символ разрыва строки, поэтому у нас есть одна строка для каждого элемента.
Renato Gama
8 апреля 2018 в 06:17
0

@ user202729 извините, я все еще писал объяснение, когда вы разместили свой комментарий. Обычно я публикую ответ, а затем начинаю его улучшать. Смотрите мою правку.

avatar
Ori Drori
8 апреля 2018 в 06:20
0

Вы можете использовать String.replace() с регулярным выражением, которое соответствует началу строк (пример regex101), и заменять каждое номером строки.

Примечание: регулярное выражение, предложенное Томасом в его комментарии.

const str = `Hi,
My
Name
is
Mike`;

let i = 1;
const numbered = str.replace(/^/gm, () => `${i++}.`);

console.log(numbered)
Thomas
8 апреля 2018 в 06:47
0

во-первых, . не соответствует разрывам строк, поэтому вы можете упростить регулярное выражение до /.+/g, но вы можете сделать еще один шаг и сопоставить начало строки без сопоставления каких-либо символов с /^/gm и вставить перечисление

Ori Drori
8 апреля 2018 в 06:53
0

@ Томас - спасибо. Я не знал о многострочном поведении с началом текста.