如何使用下划线js进行IN(SQL)操作?

时间:2016-10-05 02:02:27

标签: javascript arrays node.js underscore.js

我正在尝试使用下划线js查询json并且我有点卡住了。我想像从SQL那样进行IN操作,但我不知道如何使用_.where函数来完成它。

例如,

在SQL中,查询类似于:

where n = 10 AND color in ('red', 'pink', 'black');

但是当用下划线写这个时我不能这样做(记录集是一个对象数组)

_.where( recordset, { n: 10, color: 'red' || 'pink' || 'black'});

这只是给了我n = 10的对象,颜色只有红色。还有其他办法吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

let colors = ['red', 'pink', 'black']
let resultset = _.select(recordset, e => e.n === 10 && _.contains(colors, e.color))

或旧的js

var resultset = _.select(recordset, function (e) {
    return e.n === 10 && _.contains(['red', 'pink', 'black'], e.color);
});

_.select将数组作为第一个参数(相当于SQL中的FROM)和一个返回true / false的函数作为第二个参数(相当于SQL中的WHERE