您能告诉我如何使用Underscore.js找出属性的首次出现(不需要完全匹配)吗?

我已经尝试过了,但是它只返回完全匹配的属性。在我的列表中,它具有townNameRocky 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/

10-12 15:22