2017-05-04 185 views
-2

我正在尝试过滤JSON对象的数组。我是JavaScript新手,试图用我以前的代码编写语言。基本上,我想要采取以下数组对象。过滤JSON对象数组

 var result = [ 
           { 
            date : '2016-11-21', 
            name: 'Bob', 
            score: 0.1034947 
           }, 

           { 
            date : '2016-10-21', 
            name: 'Bill', 
            score: 0.2081911}, 

           { 
            date : '2016-10-21', 
            name: 'Mary', 
            score: 0.234947 
           }, 
           { 
            date : '2016-10-21', 
            name: 'Bob', 
            score: 0.1034947 
           }, 

           { 
            date : '2016-11-21', 
            name: 'Bill', 
            score: 0.2081911}, 

           { 
            date : '2016-11-21', 
            name: 'Mary', 
            score: 0.234947 
           }, 
           { 
            date : '2016-12-21', 
            name: 'Bob', 
            score: 0.1034947 
           }, 

           { 
            date : '2016-12-21', 
            name: 'Bill', 
            score: 0.2081911}, 

           { 
            date : '2016-12-21', 
            name: 'Mary', 
            score: 0.234947 
           } 




    ] 

然后我想根据对象进行过滤。举个例子。

var selected_Names = ['Bob','Mary'] 

我只想在这种情况下返回Bob和Mary的信息。

[ 
           { 
            date : '2016-11-21', 
            name: 'Bob', 
            score: 0.1034947 
           }, 



           { 
            date : '2016-10-21', 
            name: 'Mary', 
            score: 0.234947 
           }, 
           { 
            date : '2016-10-21', 
            name: 'Bob', 
            score: 0.1034947 
           }, 



           { 
            date : '2016-11-21', 
            name: 'Mary', 
            score: 0.234947 
           }, 
           { 
            date : '2016-12-21', 
            name: 'Bob', 
            score: 0.1034947 
           }, 



           { 
            date : '2016-12-21', 
            name: 'Mary', 
            score: 0.234947 
           } 




    ] 

谢谢!

回答

-1

const result = [{date:'2016-11-21',name:'Bob',score:0.1034947},{date:'2016-10-21',name:'Bill',score:0.2081911},{date:'2016-10-21',name:'Mary',score:0.234947},{date:'2016-10-21',name:'Bob',score:0.1034947},{date:'2016-11-21',name:'Bill',score:0.2081911},{date:'2016-11-21',name:'Mary',score:0.234947},{date:'2016-12-21',name:'Bob',score:0.1034947},{date:'2016-12-21',name:'Bill',score:0.2081911},{date:'2016-12-21',name:'Mary',score:0.234947}]; 
 
    
 
const filterNames = arr => names => arr.filter(e => names.includes(e.name)); 
 

 
const names = ['Bob', 'Mary']; 
 

 
const res = filterNames(result)(names); 
 

 
console.log(JSON.stringify(res, null, 2));

+0

优秀。非常感谢! –