使用类似查询的对象过滤器数组下划线
Underscore filter array of object using like query
>我有下面的Json。
{
"results": [
{
"id": "123",
"name": "Some Name"
},
{
"id": "124",
"name": "My Name"
},
{
"id": "125",
"name": "Johnson Johnson"
},
{
"id": "126",
"name": "Mike and Mike"
},
{
"id": "201",
"name": "abc xyz"
},
{
"id": "202",
"name": "abc befd"
},
{
"id": "210",
"name": "jki yuiu"
},
{
"id": "203",
"name": "asdfui uiuu"
},
{
"id": "204",
"name": "sfdhu uiu"
},
{
"id": "205",
"name": "asdfui uyu"
}
]
}
使用下划线,我想使用 sql 来过滤上述数据,例如对 id 的查询。例如,如果传递"2",则应过滤 JSON 并返回包含以 2 开头的 id 的新 json,如果我通过 20,它应该返回 id 以 20 开头的新 JSON
类似于SQL喜欢查询,然后返回n个结果匹配,
更正:我想要以 id 2 开头的数据或我传递的任何参数,我需要以它开头的数据
试试这个
function getResult(keyToFilter, valueStartsWith){
return _.filter(results, function(d){ return d[keyToFilter].startsWith(valueStartsWith); })
}
getResult("name", "asdfui");
[{
"id": "203",
"name": "asdfui uiuu"
},
{
"id": "205",
"name": "asdfui uyu"
}]
Array.prototype.filter
和Array.prototype.slice
呢?(下划线有类似的功能,但是当可以用普通JS解决时,为什么要使用它们)
function sqlLikeFilter(data, id, maxn) {
return data.result.filter(function(x) { return x.id == id; }).slice(0, maxn);
}
console.log(sqlLikeFilter(yourData, 125, 1));
试试这个
function(id){
var result = _.filter(results, function(value) {
return value.id === id
})
return result;
}
相关文章:
- 在Angular.JS-ng隐藏vs过滤器中将对象分隔为两组
- jQuery过滤器,返回不同的jQuery对象(即$(this).Pparent())
- 键上的javascript数组对象过滤器
- 如何对对象的多个属性使用角度过滤器
- 如何将Underscore.js过滤器与对象一起使用
- 如何遍历对象数组并将值放入过滤器中
- 对象中的角度过滤器空数组
- 通过过滤器数组设置对象数组的属性
- 使用 NG 重复上的对象作为过滤器
- 主干集合过滤器与位置和获取对象数组
- ng-repeat中的Angular Js对象过滤器
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 对象中嵌套数组上的角度ng重复过滤器
- 使用类似查询的对象过滤器数组下划线
- 如何在 JavaScript 中向 SVG 对象添加过滤器
- 聚合物获取过滤器返回的对象的属性
- 如何在jquery中对对象动态添加多个过滤器
- AngularJS 过滤器:将具有唯一 ID 的对象过滤到单独的对象中
- 对象数组的角度 JSON 过滤器
- JavaScript 对象过滤器 - 不返回关联键