javascript - 与匹配的数组值匹配时删除整个键
问题描述
我是新手,我有一个对象和一个数组,与数组值相比,我想从对象中获取不匹配项的详细信息。我尝试过,但在 consol.log 时显示了所有数据。这是我的代码
var content:[
0:{id:20, name:'Jack Daniel'}
1:{id:21, name:'Sophie McDonald'}
2:{id:22, name:'Jason Thomas'}
3:{id:23, name:'Chris Williams'}
]
var filter:[Sophie McDonald, Chris Williams]
filterValues = content.filter(item=> {
for(var i = 0;i<filter.length;i++) {
if (item.name === filtered[i])
{
return item
}
}
});
console.log(filteredValues)
// returns 0:{id:21, name:'Sophie McDonald'}
// 1:{id:23, name:'Chris Williams'}
但我需要无与伦比的结果,
filterValues = content.filter(item=> {
for(var i = 0;i<filter.length;i++) {
if (item.name !== filtered[i])
{
return item
}
}
});
console.log(filteredValues)
// returns 0:{id:20, name:'Jack Daniel'}
// 1:{id:21, name:'Sophie McDonald'}
// 2:{id:22, name:'Jason Thomas'}
// 3:{id:23, name:'Chris Williams'}
结果必须是
0:{id:20, name:'Jack Daniel'}
1:{id:22, name:'Jason Thomas'}
解决方案
尝试使用filter
,检查数组的值是否存在于您的对象值中:
const content = [{
id: 20,
name: 'Jack Daniel'
},
{
id: 21,
name: 'Sophie McDonald'
},
{
id: 22,
name: 'Jason Thomas'
},
{
id: 23,
name: 'Chris Williams'
}
];
const values = ['Sophie McDonald', 'Chris Williams'];
const filteredValues = content.filter(({
name
}) => !values.includes(name));
console.log(filteredValues);
推荐阅读
- php - PHP 文件移动功能无法正常工作
- python - 从 Python 编写 Excel 2003 XML
- firebase - Firebase 中的“可信服务器环境”是什么?
- java - 我想使用方法打印输出,但我无法打印它。为什么?
- asp.net-mvc - 从 Web 服务器浏览时,Windows 身份验证不起作用
- android - 使用预填充的数据库发布 android 应用程序
- c# - 获取列表的所有对角线元素
- java - jre更新后大小不同
- microsoft-edge - 如何从命令行打开 Edge 到特定页面?
- javascript - Node.js 配置文件 vs .env 架构实践和构建模式