javascript - 从javascript中的对象中删除给定条目
问题描述
大家好,我想从一个对象(我也作为参数给出)中删除一个条目(我作为参数给出)。为了更清楚,我将为您提供一些代码。
这是我要从中删除条目的对象:
const register = {
aap :[{condition: {aap:'aap'}, func: 'fun'}],
aap1 :[{condition: {aap1:'aap1'}, func: 'fun'},{condition: {aap2:'aap2'}, func: 'fun'}],
};
我要删除的条目如下所示:{aap:'aap'}
然后我会像这样调用函数myfunction(register,{aap:'aap'})
在上述情况下,从寄存器中删除给定的条件对象。
现在这是我自己建造的:
const register = {
aap :[{condition: {aap:'aap'}, func: 'fun'}],
aap1 :[{condition: {aap1:'aap1'}, func: 'fun'},{condition: {aap2:'aap2'}, func: 'fun'}],
};
function hallo(register,condition){
const objKeys = [];
for(key in register){
objKeys.push(key);
}
objKeys.forEach(function(el){
console.log(register[el]);
})
}
hallo(register);
我想出了如何获得一些我可以用来删除的结果:
[ { condition: { aap: 'aap' }, func: 'fun' } ]
[ { condition: { aap1: 'aap1' }, func: 'fun' },
{ condition: { aap2: 'aap2' }, func: 'fun' } ]
但是我仍然没有弄清楚如何删除与我在函数中给出的条目相匹配的条目。
长话短说。我想要一个包含 2 个参数的函数。一个参数是寄存器(我想从中删除的对象),第二个参数是我想删除的条件。
返回函数后,想要的结果应该是:
const register = {
aap :[{condition: {}, func: 'fun'}],
aap1 :[{condition: {aap1:'aap1'}, func: 'fun'},{condition: {aap2:'aap2'}, func: 'fun'}],
};
寄存器减去我想要删除的条件。
解决方案
您可以通过迭代对象的所有键并检查键是否在value
其中并删除对象中的此键来采用递归方法。
继续嵌套对象。
function remove(object, value) {
Object.keys(object).forEach(key => {
if (key in value && object[key] === value[key]) {
delete object[key];
return;
}
if (object[key] && typeof object[key] === 'object') {
remove(object[key], value);
}
});
return object;
}
const register = { aap: [{ condition: { aap: 'aap' }, func: 'fun' }], aap1: [{ condition: {aap1: 'aap1' }, func: 'fun' }, { condition: { aap2: 'aap2' }, func: 'fun' }] };
console.log(remove(register, { aap: 'aap' }));
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- python - 错误:flask_oidc:错误:无法获取令牌信息 - 错误:flask_oidc:'token_introspection_uri'
- sharepoint - 为同一个令牌检测到多个发行者
- java - 如何从安装在 DB2 中的 Java UDF 进行日志记录
- vue.js - Vue CLI 3.0 项目无法在 IE11 上运行,SCRIPT1003:预期的 ':' 出现空白屏幕错误
- qt - 恢复任意 QDialog 的几何和状态
- apache-kafka - Kafka Spring boot 应用生产者消费者大消息配置支持
- python - 用于 Python 加密的 AES 密钥
- gwt - 除了 HTMLCanvasElement 之外,还有什么方法可以在 domino-ui 中使用 gwt 画布
- rest - 面向服务的架构互操作性
- android - 如何在android中处理动态添加的单选按钮检查和取消检查