2016-10-05 1 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"부분을 결코 보지 못합니다. 나는 Underscore에 대해서는 확신하지 못하지만, 아마도 여러분은 값 배열을 전달할 수있을 것입니다. 의사를 확인하십시오. – 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 상당)로 배열하는 기능을 얻어 두 번째 인수 (SQL에서 WHERE과 동일).

+0

와우 감사합니다. 왜 내가 이것을 생각하지 않았어. – Armagetin

관련 문제