Определить строку, обрезана она или нет - PullRequest
0 голосов
/ 02 августа 2020
`......................
..#................#..
..#..............=.#..
..#.........o.o....#..
..#.@......#####...#..
..#####............#..
......#++++++++++++#..
......##############..
......................`.trim()

Когда я обрезаю вышеуказанное, это дает мне следующее:

"......................
..#................#..
..#..............=.#..
..#.........o.o....#..
..#.@......#####...#..
..#####............#..
......#++++++++++++#..
......##############..
......................"

Насколько я понимаю, обрезка удаляет пробелы в начале и конце строки, как в " helloworld ", обрезка будет "helloworld". Теперь я хочу узнать о первом примере, который я определил выше.

Прежде всего, это даже строка, потому что я вижу там обратные кавычки. И если я попытаюсь указать кавычки, обрезка не сработает. Я не понимаю и не вижу, как это обрезано. Пример взят из платформенной игры в Eloquent JavaScript.

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Это недействительно в js:

"......................
..#................#..
..#..............=.#..
..#.........o.o....#..
..#.@......#####...#..
..#####............#..
......#++++++++++++#..
......##############..
......................"

Это (как указал Кунал Мукерджи в комментариях, вы должны использовать литералы шаблонов, которые поддерживают несколько строк):

`......................
..#................#..
..#..............=.#..
..#.........o.o....#..
..#.@......#####...#..
..#####............#..
......#++++++++++++#..
......##############..
......................`

Чтобы ответить на вопрос в заголовке и проверить, обрезана ли строка, вы можете сделать это:

function isTrimmed(str) {
  return str == str.trim();
}

const foo = `......................
..#................#..
..#..............=.#..
..#.........o.o....#..
..#.@......#####...#..
..#####............#..
......#++++++++++++#..
......##############..
......................`;

console.log(isTrimmed(foo));

console.log(isTrimmed(" Text with space "));
0 голосов
/ 02 августа 2020

Прежде всего, это даже строка, потому что я вижу там обратные кавычки. И если я попытаюсь указать кавычки, обрезка не сработает.

Обратные кавычки позволяют вам определять строку на нескольких строках. Например, такая строка:

let str = `Hello
World`;

на самом деле является строкой со значением "Hello\nWorld" (перевод строки между двумя словами). Если вы замените обратные кавычки на кавычки и попытаетесь определить строку, например:

let str = "Hello
World";

, то это неверный оператор. Это причина того, почему это не удалось. Это не имеет ничего общего с функцией обрезки.

...