2016-11-30 1 views
1

stackoverflow 질문을 통해 검색하여 여러 일치 값으로 배열을 필터링하는 방법을 시도했습니다.다중 일치 값으로 필터 배열

내 배열 :

[{"time":"2016-11-30 02:45:00","signal":"Buy","symbol":"AUDNZDecn","price":"1.04605","timeframe":"M15","epoch":"1480473900","candel":"M151480481100"},{"time":"2016-11-30 02:41:00","signal":"Sell","symbol":"AUDJPYecn","price":"84.08700","timeframe":"M1","epoch":"1480473660","candel":"M11480480860"},{"time":"2016-11-30 02:24:59","signal":"Buy","symbol":"EURNZDecn","price":"1.48820","timeframe":"M5","epoch":"1480472699","candel":"M51480479900"}] 
당신은 3 개 시간대가 볼 수

: M1, M5는, M15

나는 하나의 "기간"을 기준으로 필터링하려면 다음 코드를 사용할 수 있어요 :

var j = j.filter(function(el) { 
      return el.timeframe == timeframe; 
}); 

참고 : JSON가 다시 JSON 응답을 전달하는 PHP 스크립트 회담 AJAX를 쿼리에서 서버 응답을 구문 분석에 j는 일명, 동일 위의 배열.

목표 : 사용자가 세 가지 시간대의 조합에 대한 체크 박스를 클릭 할 때 있도록 내가 뭘하는 방법을 이해하려는 것은 배열의 값 "기간"다수에 의해 필터가 나는, 한 번에입니다 확인란에서 값을 가져오고 사용자가 선택한 확인란의 조합에 따라 배열을 필터링 할 수 있습니다. 전의. "M1", "M5", "M15", "M1, M5"또는 M1, M15 "또는 M5, M15"또는 "M1, M5, M15"

반환 된/필터링 된 새 배열은 각 루프에 jquery로 전달되어 데이터를 통과하고 div에 데이터를 추가합니다. (나는 이미이 부분을 가지고있다.)

어떤 조언을 감사한다!

+0

방금 ​​새로운 배열에 값을 밀어 하시겠습니까 경우 사용자가 클릭 할 ? 이벤트 처리기는 어디에 있습니까? –

답변

1

당신은 결과를 필터링 할 수 Array.prototype.filterArray.prototype.some을 결합 할 수 있습니다 - 데모 아래 참조 :

var array = [{"time":"2016-11-30 02:45:00","signal":"Buy","symbol":"AUDNZDecn","price":"1.04605","timeframe":"M15","epoch":"1480473900","candel":"M151480481100"},{"time":"2016-11-30 02:41:00","signal":"Sell","symbol":"AUDJPYecn","price":"84.08700","timeframe":"M1","epoch":"1480473660","candel":"M11480480860"},{"time":"2016-11-30 02:24:59","signal":"Buy","symbol":"EURNZDecn","price":"1.48820","timeframe":"M5","epoch":"1480472699","candel":"M51480479900"}]; 
 

 
function filterResults(arr) { 
 
    return array.filter(function(el) { 
 
    return arr.some(function(e) { 
 
     return el.timeframe == e; 
 
    }); 
 
    }); 
 
} 
 

 
// pass the required timeframes to filter here 
 
var result = filterResults(['M1','M5']); 
 

 
console.log(result);
.as-console-wrapper{top:0;max-height:100%!important;}

+0

@ user3259138이게 당신의 쿼리를 해결했는지 알려주세요, 감사합니다! – kukkuz

+0

이 트랙이 내가 따라야 할 트랙이라고 생각합니다. 무엇을 할 지 알아 내려고하는 것은 jquery를 사용하여 체크 여부를 확인한 후에 체크 박스의 값을 취하는 것입니다. 체크 된 것들을 배열에 넣으면 함수 – user3259138

+0

@ user3259138 필터링 부분을 알면 좋다. 지금 당장 좋다. upvote를 기쁘게 해 주시고이 질문을 끝내시기 바랍니다. 고마워요! – kukkuz