查找属性的第一次出现(不需要精确匹配)
To find out the first occurrence of a property (no need to be exactly matched)
你能告诉我如何通过使用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>
使用RegExp模式测试名称是否包含文本,使用i
标志忽略大小写:
var schoolDistricts = [{
townName: 'South Rock'
}, {
townName: 'Red Herring'
}, {
townName: 'Rocky Point'
}, {
townName: 'Whatnot'
}];
var school = 'Rocky'; // replacement for result.data[0].PropertyData.School
var pattern = new RegExp(school, 'i');
var result = _.find(schoolDistricts, function(d) {
return pattern.test(d.townName);
});
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
相关文章:
- 对象不支持属性或方法“自动完成”
- 如何在不需要单击按钮的情况下获取选项的值
- Javascript不需要的关闭行为
- 删除客户端浏览器上不需要的内容
- 不允许在字段中输入不需要的字符
- 不需要的JSON响应
- 如何使图像适合TD,而不需要包装在不同的屏幕分辨率上
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- jQuery自动完成显示不需要的动态html标记
- 在Knockout js中创建一个包含多行的表,而不需要推送
- AngularJs正在解码HTML字符(不需要)
- find()方法返回具有不需要的属性的对象
- 在grunt中设置一个属性就是创建一个不需要的json对象
- 如何将控制器's content属性设置为模型数组,而不需要相应的路由
- 一个方法需要HttpGet属性,而另一个方法不需要
- 视图控制器需要:属性不工作
- 可以将对象的属性传递给函数,而不需要定义参数,并通过对象的键来使用它们
- 查找属性的第一次出现(不需要精确匹配)
- 可引导的数据-url属性,但不需要的查询参数!(
- MVC不需要ViewModel上的双重属性导致问题