javascript - 检查对象是否存在于数组中,不包括特定属性
问题描述
有没有办法在排除一个属性的同时检查一个对象是否存在于数组中?我不知道对象中将存在哪些属性,因此我无法手动比较属性。
根据下面的代码,我想检查excludeobj
中是否存在。arr
prop3
例子:
const obj = {
"prop1": "value1",
"prop2": "value2"
}
const arr = [{
"prop1": "value1",
"prop2": "value2",
"prop3": "value3"
},
{
"prop1": "value4",
"prop2": "value5",
"prop3": "value6"
}
]
arr.indexOf(obj) > -1; // returns false, need something like this that returns true
解决方案
用户 Array.findIndex() 方法查找索引:
const keys = Object.keys(obj);
arr.findIndex((o) => {
return keys.every(k => o[k] && o[k] === obj[k])
});
推荐阅读
- angular - 在包中使用 HTTP 拦截器
- docker - 如何在 docker-compose 入口点中转义'
- node.js - `heroku local web`上的“错误:未定义配置属性” - Config / Heroku
- android - 我在应用程序的菜单(android studio)中添加了一个开关小部件,应用程序不断崩溃。有人可以帮我解决吗?
- c# - C# 如何比较 Equals() 方法中的两个对象列表
- mysql - 如何创建触发器来验证另一个表上是否存在新数据?
- javascript - 倒计时为零时效果不佳
- javascript - Ionic 4 上传截图到服务器
- c# - 如果在 Asp.Net Core 中指定了多个策略(例如中间件配置、控制器/动作属性),则使用哪个授权策略?
- docker - cron-job 与控制台的 Linux CFS 调度