какой смысл использовать необязательный параметр length в функции endWith ()? - PullRequest
3 голосов
/ 13 января 2020

В методе JavaScript endsWith для чего используется необязательный параметр длины?

str.endsWith(searchString[, length])

Согласно документации :

Если при условии, что он используется как длина ул. По умолчанию используется str.length.

Я до сих пор не могу найти причину для этого параметра. Используется ли он для повышения эффективности поиска? Для чего используется этот параметр?

Ответы [ 2 ]

2 голосов
/ 13 января 2020

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

Так что если вы иметь строку, и вы хотите выяснить, находится ли искомая строка в конце строки, но только в том случае, если искомая строка была обрезана в определенном месте индекса, о котором вы знаете. Вы можете дать строку, которую вы ищете, по этому индексу, передав методу новую длину для строки.

Давайте рассмотрим пример с использованием параметра длины, который MDN предоставляет в документации

let str = 'To be, or not to be, that is the question.'

console.log(str.endsWith('to be', 19))  // true

Так что в этом примере 19 передается как длина, заставляя его анализировать только строку, как если бы она имела длину 19, то есть до «е» в «быть», прямо перед второй запятой. Так что на самом деле это только анализ строки, 'To be, or not to be', потому что это первые 19 символов. Поскольку строка заканчивается на «быть», когда строка анализируется только до 19-го индекса (исключая), возвращается true. Если параметр длины не передан, он вернет false. Это имеет смысл?

2 голосов
/ 13 января 2020

Представьте, у вас есть отформатированная строка

202001010000 start 00000001
202001131825   end 00000002

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

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

Это в основном краткая форма

string.slice(0, length).endsWith(searchString)

var string = 'abcfoobar';

console.log(string.slice(0, 6).endsWith('foo')); //  true
console.log(string.endsWith('foo', 6));          //  true
console.log(string.endsWith('foo'));             // false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...