2017-02-09 1 views
3

스택 오버플로를 30 분 동안 검색했지만 해결책이 없습니다. 나는 다음과 같은 json을 가지고있다 ...키 값별 json 필터

[{"time":"2016-07-26 09:02:27","type":"aa"}, 
{"time":"2016-04-21 20:35:07","type":"ae"}, 
{"time":"2016-08-20 03:31:57","type":"ar"}, 
{"time":"2017-01-19 22:58:06","type":"ae"}, 
{"time":"2016-08-28 10:19:27","type":"ae"}, 
{"time":"2016-12-06 10:36:22","type":"ar"}, 
{"time":"2016-07-09 12:14:03","type":"ar"}, 
{"time":"2016-10-25 05:05:37","type":"ae"}, 
{"time":"2016-06-05 07:57:18","type":"ae"}, 
{"time":"2016-10-08 22:03:03","type":"aa"}, 
{"time":"2016-08-13 21:27:37","type":"ae"}, 
{"time":"2016-04-09 07:36:16","type":"ar"}, 
{"time":"2016-12-30 17:20:08","type":"aa"}, 
{"time":"2016-03-11 17:31:46","type":"aa"}, 
{"time":"2016-05-04 14:08:25","type":"ar"}, 
{"time":"2016-11-29 05:21:02","type":"ar"}, 
{"time":"2016-03-08 05:46:01","type":"ar"}, 
] 

배열을 같은 형식으로 유지하려고하지만 "ar"유형의 객체 만 포함하고 싶다. 자바 스크립트로 json을 필터링하여 필요한 유형 만 포함시킬 수 있습니까?

+2

은 분명히 당신은 모든이에 대한 자신의 연구는, 당신을하지 않았다 않았다? – WillardSolutions

+2

중요한 기술 구분 : * JSON은 문자열 *입니다 (JavaScript 데이터 구조를 문자열 데이터로 직렬화하는 방법입니다.). 당신이 할 수있는 유일한 일은 문자열 연산을 수행하거나 자바 스크립트 데이터 구조로 파싱하는 것입니다. 당신이 물어 보는 것은 객체의 배열을 필터링하는 것입니다. ** 아닙니다 ** JSON 필터링에 대해 묻지 않습니다. –

답변

6

filter 방법을 사용해야합니다.

filter() 메서드는 제공된 함수로 구현 된 테스트를 통과 한 모든 요소를 ​​사용하여 새 array을 만듭니다.

기능은 배열의 각 요소에 적용되는 callback입니다.

var arr=[{"time":"2016-07-26 09:02:27","type":"aa"}, 
 
{"time":"2016-04-21 20:35:07","type":"ae"}, 
 
{"time":"2016-08-20 03:31:57","type":"ar"}, 
 
{"time":"2017-01-19 22:58:06","type":"ae"}, 
 
{"time":"2016-08-28 10:19:27","type":"ae"}, 
 
{"time":"2016-12-06 10:36:22","type":"ar"}, 
 
{"time":"2016-07-09 12:14:03","type":"ar"}, 
 
{"time":"2016-10-25 05:05:37","type":"ae"}, 
 
{"time":"2016-06-05 07:57:18","type":"ae"}, 
 
{"time":"2016-10-08 22:03:03","type":"aa"}, 
 
{"time":"2016-08-13 21:27:37","type":"ae"}, 
 
{"time":"2016-04-09 07:36:16","type":"ar"}, 
 
{"time":"2016-12-30 17:20:08","type":"aa"}, 
 
{"time":"2016-03-11 17:31:46","type":"aa"}, 
 
{"time":"2016-05-04 14:08:25","type":"ar"}, 
 
{"time":"2016-11-29 05:21:02","type":"ar"}, 
 
{"time":"2016-03-08 05:46:01","type":"ar"}, 
 
]; 
 
var filtered=arr.filter(function(item){ 
 
    return item.type=="ar";   
 
}); 
 
console.log(filtered);
또한

, 당신은 shorter 방법을 사용할 수 있습니다 : 특정 조건에 맞는 요소 만 반환하는 배열을 필터링 할 수 있습니다

var filtered=arr.filter(a=>a.type=="ar"); 
0

filter 방법을 사용을 data.filter((x)=>x.type === "ar");

filter 메서드는 새 배열을 만듭니다. 당신은 filter 기능을 사용할 수있는 상태 위의 답변으로 깨끗하지

var data =[{"time":"2016-07-26 09:02:27","type":"aa"}, 
 
{"time":"2016-04-21 20:35:07","type":"ae"}, 
 
{"time":"2016-08-20 03:31:57","type":"ar"}, 
 
{"time":"2017-01-19 22:58:06","type":"ae"}, 
 
{"time":"2016-08-28 10:19:27","type":"ae"}, 
 
{"time":"2016-12-06 10:36:22","type":"ar"}, 
 
{"time":"2016-07-09 12:14:03","type":"ar"}, 
 
{"time":"2016-10-25 05:05:37","type":"ae"}, 
 
{"time":"2016-06-05 07:57:18","type":"ae"}, 
 
{"time":"2016-10-08 22:03:03","type":"aa"}, 
 
{"time":"2016-08-13 21:27:37","type":"ae"}, 
 
{"time":"2016-04-09 07:36:16","type":"ar"}, 
 
{"time":"2016-12-30 17:20:08","type":"aa"}, 
 
{"time":"2016-03-11 17:31:46","type":"aa"}, 
 
{"time":"2016-05-04 14:08:25","type":"ar"}, 
 
{"time":"2016-11-29 05:21:02","type":"ar"}, 
 
{"time":"2016-03-08 05:46:01","type":"ar"}, 
 
]; 
 
      
 
var result = data.filter((x)=>x.type === "ar"); 
 
console.log(result);

0

x.type === "ar"

을 통과하지만, 의지 할 LL 요소는 여전히 작업을

var list = [{"time":"2016-07-26 09:02:27","type":"aa"}, 
{"time":"2016-04-21 20:35:07","type":"ae"}, 
{"time":"2016-08-20 03:31:57","type":"ar"}, 
{"time":"2017-01-19 22:58:06","type":"ae"}, 
{"time":"2016-08-28 10:19:27","type":"ae"}, 
{"time":"2016-12-06 10:36:22","type":"ar"}, 
{"time":"2016-07-09 12:14:03","type":"ar"}, 
{"time":"2016-10-25 05:05:37","type":"ae"}, 
{"time":"2016-06-05 07:57:18","type":"ae"}, 
{"time":"2016-10-08 22:03:03","type":"aa"}, 
{"time":"2016-08-13 21:27:37","type":"ae"}, 
{"time":"2016-04-09 07:36:16","type":"ar"}, 
{"time":"2016-12-30 17:20:08","type":"aa"}, 
{"time":"2016-03-11 17:31:46","type":"aa"}, 
{"time":"2016-05-04 14:08:25","type":"ar"}, 
{"time":"2016-11-29 05:21:02","type":"ar"}, 
{"time":"2016-03-08 05:46:01","type":"ar"}, 
] 

var newList = []; 

for (var i = 0; i < list.length; i++) { 
    if (list[i].type === 'ar') { 
     newList.push(list[i]); 
    } 
} 

console.log(newList); 
2

을한다. browser support 먼저 확인하십시오 :

var result = a.filter(function(v){ 
    return v.type==='ar'; 
}) 

희망이 도움이됩니다.

var list = [ 
 
    {"time":"2016-07-26 09:02:27","type":"aa"}, 
 
    {"time":"2016-04-21 20:35:07","type":"ae"}, 
 
    {"time":"2016-08-20 03:31:57","type":"ar"}, 
 
    {"time":"2017-01-19 22:58:06","type":"ae"}, 
 
    {"time":"2016-08-28 10:19:27","type":"ae"}, 
 
    {"time":"2016-12-06 10:36:22","type":"ar"}, 
 
    {"time":"2016-07-09 12:14:03","type":"ar"}, 
 
    {"time":"2016-10-25 05:05:37","type":"ae"}, 
 
    {"time":"2016-06-05 07:57:18","type":"ae"}, 
 
    {"time":"2016-10-08 22:03:03","type":"aa"}, 
 
    {"time":"2016-08-13 21:27:37","type":"ae"}, 
 
    {"time":"2016-04-09 07:36:16","type":"ar"}, 
 
    {"time":"2016-12-30 17:20:08","type":"aa"}, 
 
    {"time":"2016-03-11 17:31:46","type":"aa"}, 
 
    {"time":"2016-05-04 14:08:25","type":"ar"}, 
 
    {"time":"2016-11-29 05:21:02","type":"ar"}, 
 
    {"time":"2016-03-08 05:4601","type":"ar"}, 
 
]; 
 

 
var result = list.filter(function(obj, index){ 
 
    return obj.type==='ar'; 
 
}) 
 

 
console.log(result);