我正在尝试过滤JSON对象的数组。我是JavaScript的新手,并试图用我曾经使用的编码语言来做。基本上,我想采用以下数组对象。
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
}
]
谢谢!
答案 0 :(得分:-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));