我对 AngularJS 很陌生,我正在尝试弄清楚如何应用一个过滤器,其中记录 id 是数组中的 id 列表之一。在 SQL 中,它会是这样的:
SELECT * from Table1 where Table1.ID in (1,2,3,4,5)
我如何在 AngularJS 中完成同样的事情?我知道我需要应用过滤,但是如何呢?
最佳答案
您可以使用 filter 的组合使用纯 Javascript 来完成此操作和 some .
示例:
let a = [{id: 1, val: 'aaa'},
{id: 2, val: 'bbb'},
{id: 3, val: 'ccc'},
{id: 4, val: 'ddd'},
{id: 5, val: 'eee'},
{id: 6, val: 'fff'},
{id: 7, val: 'ggg'},
{id: 8, val: 'hhh'}];
let b = [1,2,5,6];
let result = a.filter(x => b.some(y => y === x.id));
结果(字符串化):
[{"id":1,"val":"aaa"},{"id":2,"val":"bbb"},{"id":5,"val":"eee"},{"id":6,"val":"fff"}]
在 ES5 中你可以这样写:
var result = a.filter(function(x) { return b.some(function(y) { return y === x.id; }); });
关于javascript - AngularJS 中的 SQL IN 语句相当于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42769422/