我遇到一个问题,尝试使用_.filter
方法减少(有效)ID列表。目的是根据每个字符串末尾给出的数字的最后一个值(string-string- [lastNumber + 1])创建一个新的id。
因为我不想收到无效的ID。我只是尝试在regexp
方法内部使用_.filter
过滤这些ID。
但是,结果看起来很奇怪。尽管这些字符串通过了regexp验证的在线测试。
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!
我不知道为什么某些有效的id未通过_.filter
函数内部的测试,而是作为数组的元素返回。
所有这些都经过独立测试,可以正常工作:(
lodash的错误行为只会返回赔率值...
欢迎使用其他任何解决方案,但我想知道为什么lodash目前无法正常工作。
非常感谢!