Filter Javascript array of objects with another array of objects(过滤Javascript对象数组与另一对象数组)
本文介绍了过滤Javascript对象数组与另一对象数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有列表
var list = [
{name: 'Hello', ads: true, pas: ['Av', 'Sd', 'Qr']},
{name: 'Fre', ads: false, pas: ['Sd', 'Bc']},
{name: 'Nat', ads: false, pas: ['Bc', 'Mo', 'Rr']},
{name: 'Bor', ads: true, pas: ['Bo', 'Be', 'De']},
{name: 'Arg', ads: true, pas: ['Ar', 'Na', 'Br']},
];
和阵列的过滤
var filter = [
'Sd','Be'
];
我已尝试使用filter
,但没有筛选。
list
.filter(function(ls) {
return ls.pas
.filter(function(p){
return filter.indexOf(p) > -1;
})
})
我的预期输出
[
{name: 'Hello', ads: true, pas: ['Av', 'Sd', 'Qr']},
{name: 'Fre', ads: false, pas: ['Sd', 'Bc']},
{name: 'Bor', ads: true, pas: ['Bo', 'Be', 'De']}
];
推荐答案
可以使用some()
检查当前对象的pas
数组中是否有元素在filter
数组内。
js"data-ide="false"data-console="true"data-babel="false">
var list = [
{name: 'Hello', ads: true, pas: ['Av', 'Sd', 'Qr']},
{name: 'Fre', ads: false, pas: ['Sd', 'Bc']},
{name: 'Nat', ads: false, pas: ['Bc', 'Mo', 'Rr']},
{name: 'Bor', ads: true, pas: ['Bo', 'Be', 'De']},
{name: 'Arg', ads: true, pas: ['Ar', 'Na', 'Br']},
];
var filter = [
'Sd','Be'
];
var result = list.filter(function(e) {
return e.pas.some(function(a) {
return filter.indexOf(a) != -1
})
})
console.log(result);
这篇关于过滤Javascript对象数组与另一对象数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
织梦狗教程
本文标题为:过滤Javascript对象数组与另一对象数组


基础教程推荐
猜你喜欢
- Bokeh Div文本对齐 2022-01-01
- 即使用户允许,Gmail 也会隐藏外部电子邮件图片 2022-01-01
- 在 contenteditable 中精确拖放 2022-01-01
- 检查 HTML5 拖放文件类型 2022-01-01
- fetch 是否支持原生多文件上传? 2022-01-01
- 原生拖动事件后如何获取 mouseup 事件? 2022-01-01
- 如何添加到目前为止的天数? 2022-01-01
- Fabric JS绘制具有活动形状的多边形 2022-01-01
- npm start 错误与 create-react-app 2022-01-01
- Bootstrap 模态出现在背景下 2022-01-01