javascript - 与第二个数组中的对象属性值相比,返回过滤后的数组
问题描述
我需要根据用户输入的内容动态更新 AngularJS 应用程序中的表。我有一个在视图updateCategory
中调用的函数,应该在控制器中ng-change
返回一个新数组。vm.portfolioData
提供el.serviceList
了一个属性,serviceStatus
它提供了一个字符串值,然后需要检查它是否包含在第二个数组的对象属性中,actionStatus
:
function updateCategory(obj, position) {
vm.portfolioData = patents;
vm.portfolioData = vm.portfolioData.filter(function(el){
return el.serviceList.filter(function(item){
//item.serviceStatus: "Epct available"
//NEED TO RETURN EL IF STATUS IS CONTAINED IN SECOND ARRAY
}
})
}
第二个数组
actionStatus: [
{name: 'Epct available'},
{name: 'Epct saved'},
{name: 'Form 1200 saved'},
{name: 'Epct rejected'},
{name: 'Show price'},
{name: 'Open for Renewal'},
{name: 'Form 1200 generating'}
]
问题
serviceStatus
一旦我检查了值是否包含在第二个数组中的任何对象属性中,如何返回新的过滤name
数组?
解决方案
尝试这个:
const serviceList = [
{serviceStatus: 'Epct available'},
{serviceStatus: 'Epct not available'},
];
const actionStatus = [
{name: 'Epct available'},
{name: 'Epct saved'},
{name: 'Form 1200 saved'},
{name: 'Epct rejected'},
{name: 'Show price'},
{name: 'Open for Renewal'},
{name: 'Form 1200 generating'}
];
const actionStatusStrings = actionStatus.map(item => item.name);
const filteredArray = serviceList.filter(item => {
return actionStatusStrings.includes(item.serviceStatus);
});
关于你的情况:
function updateCategory(obj, position) {
vm.portfolioData = patents;
const actionStatusStrings = actionStatus.map(item => item.name);
vm.portfolioData = vm.portfolioData.filter(el => {
return el.serviceList.find(item => {
return actionStatusStrings.includes(item.serviceStatus);
});
})
}
推荐阅读
- javascript - PHP中未定义的索引与post
- deep-learning - 如何使用具有三角权重的成品 GAN 模型来创建新图像?
- python - 通过python pandas根据特定值删除行?
- spyder - 阻止 Spyder 4.0 安装的 Kite 客户端或包冲突
- latex - Jupyter 数学模式中的单间距
- github-actions - 如何在 Windows 的 github-actions 步骤中安装 msi 包?
- wordpress - wordpress 在 plesk onyx 17.8 上的永久链接帖子名称中返回 404
- vue.js - 如何通过 ref 向 Vue 元素添加 onclick 事件?
- xml - PowerShell 获取节点的第一行和关联的行号
- excel - 从输入框中搜索表格中的一个值并返回多个值