Я получил проблему, пытаясь уменьшить методом _.filter
список (действительных) идентификаторов. Цель состоит в том, чтобы создать новый идентификатор в соответствии с последним значением числа, указанного в конце каждой строки (string-string- [lastNumber + 1]).
Потому что я не хочу получать неверный идентификатор. Я просто попытался отфильтровать эти идентификаторы, используя метод regexp
внутри _.filter
.
Однако результат выглядит очень странно. Несмотря на то, что из этих строк прошло онлайн-тестирование регулярного выражения.
REPL тестирование
var data = [
'offstreetparking-estepona-1',
'offstreetparking-estepona-2',
'offstreetparking-estepona-3',
'offstreetparking-estepona-04', // Should nor be included (not 04)
'offstreetparking-estepona-4',
'offstreetparking-estepona-5'
]
var patt = /([A-Za-z]+)-([A-Za-z]+)-([1-9]+)/g;
_.filter(data, d => patt.test(d));
// Result from lodash => [
"offstreetparking-estepona-1",
"offstreetparking-estepona-3",
"offstreetparking-estepona-4"
]
// Missing => 2 and 5 ids!
Я не знаю, почему некоторые из действительных идентификаторов не проходят тест внутри функции _.filter
и возвращаются как элемент массива.
Все они были протестированы независимо и отлично работают: (
Неправильное поведение, что lodash вернул только значения шансов ...
Любые другие решения приветствуются, но я хочу знать, почему lodash не работает должным образом.
Большое спасибо!