过滤JavaScript对象与另一个数组 [英] Filter javascript objects with another array
本文介绍了过滤JavaScript对象与另一个数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
var posts = [
{area:'NY', name:'Bla',ads:true},
{area:'DF',name:'SFS',ads:false},
{area:'TT',name:'SDSD', ads:true},
{area:'SD',name:'Engine',ads:false},
{area:'NSK',name:'Toyota',ads:false},
];
以及另外一个过滤器集合
var filter = ['NY','SD'];
我试图过滤我的文章
数组(){
$ b
function filtered(){
return post
.filter(function(post){
return post.ads === true;
})
.filter(function(post){
return filter.indexOf(post.area)> 0;
$)
console.log(filtered());
这个过滤器没有任何东西,只是空的数组
解决方案
只需要一个 Array#filter
方法,第二个条件应该是 indexOf(post.area)> -1;
自索引从 0
。
var posts = [{area:'NY',name:'Bla',ads:true},{area:'DF',name:'SFS',ads :区域:'TT',名称:'SDSD',ads:true},{区域:'SD',名称:'引擎',ads:false},{area:'NSK',name:'丰田',ads:false},]; var filter = ['NY','SD']; function filtered(p,f){return p .filter(function(v){return v.ads&& f.indexOf(v.area)> - 1;})} console.log(filtered(posts,filter));
I have Javascript array of objets like this
var posts = [
{area: 'NY', name: 'Bla', ads: true},
{area: 'DF', name: 'SFS', ads: false},
{area: 'TT', name: 'SDSD', ads: true},
{area: 'SD', name: 'Engine', ads: false},
{area: 'NSK', name: 'Toyota', ads: false},
];
and another filter collection like this
var filter = ['NY', 'SD'];
I am trying to filter my posts
array with this filter
function filtered() {
return posts
.filter(function(post){
return post.ads === true;
})
.filter(function(post){
return filter.indexOf(post.area) > 0;
})
}
console.log(filtered());
and this filter gives nothing, just empty array
解决方案
There is only need single Array#filter
method and the second condition should be indexOf(post.area) > -1;
since index starts from 0
.
var posts = [
{area: 'NY', name: 'Bla', ads: true},
{area: 'DF', name: 'SFS', ads: false},
{area: 'TT', name: 'SDSD', ads: true},
{area: 'SD', name: 'Engine', ads: false},
{area: 'NSK', name: 'Toyota', ads: false},
];
var filter = ['NY', 'SD'];
function filtered(p, f) {
return p
.filter(function(v) {
return v.ads && f.indexOf(v.area) > -1;
})
}
console.log(filtered(posts, filter));
这篇关于过滤JavaScript对象与另一个数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文