2016-10-05 8 views
0

アンダースコアjsを使用してjsonを照会しようとしています。 SQLのようなIN操作をしたいのですが、_.where関数を使用してそれを行う方法がわかりません。例えば アンダースコアjを使用してIN(SQL)操作を行うにはどうすればよいですか?

のようなSQLでクエリは次のようになります。

_.where(recordset, { n: 10, color: 'red' || 'pink' || 'black'}); 
(レコードセットがオブジェクトの配列である)

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

しかし、アンダースコアでこれを書くとき、私はこれを行うことはできません

これはちょうど私にn = 10のオブジェクトを与え、色は赤だけです。これを行う他の方法?事前に

おかげ

+1

あなたが試したことについては、JS式 'red '|| 'ピンク' || 'black'は '' red ''と評価されるので、Underscoreはその表現の '' pink''と '' black''部分を見ていません。アンダースコアについてはわかりませんが、値の配列などを渡すことができますか?ドコモを確認してください。 – nnnnnn

答えて

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に相当)と、真/偽を返す関数として配列をとります2番目の引数(SQLのWHEREに相当)。

+0

うわーありがとう。なぜ私はこれを考えなかったのですか? – Armagetin

関連する問題