您能告诉我如何使用Underscore.js找出属性的首次出现(不需要完全匹配)吗?
我已经尝试过了,但是它只返回完全匹配的属性。在我的列表中,它具有townName
像Rocky Point
这样,但是我还需要选择Rocky
,那么我该怎么做呢?
var schoolDistrict = _.find(vm.schoolDistricts, function (d) { return d.townName
== result.data[0].PropertyData.School; });
例如
vm.schoolDistricts = [townName:'Rocky Point',...]
result.data[0].PropertyData.School = 'Rocky'
最佳答案
OP的反馈:我使用了如下所示的方法,并且工作正常:)
var schoolDistrict = _.find(vm.schoolDistricts, function (s) { return
s.townName.toLowerCase().indexOf(result.data[0].PropertyData.School.toLowerCase(
)) !== -1; });
其它的办法 :
您可以进行原始检查,以确定其中一个字符串是否为另一个的子字符串。您也可以将字符串改小写,以进行更好的搜索:
var schoolDistricts = [
{townName:'Rocky Point'},
{townName: 'Roc'}
];
var searchString = 'Rocky'.toLowerCase();
var res = _.find(schoolDistricts, function(s) {
var townName = s.townName.toLowerCase();
return townName.indexOf(searchString) !== -1 || searchString.indexOf(townName) !== -1;
});
console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
关于javascript - 查找属性的首次出现(无需完全匹配),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39041626/