javascript - 从javascript中的对象中删除给定的条目

标签 javascript object

大家好,我想从一个对象(我也作为参数给出)中删除一个条目(我作为参数给出)的函数。为了更清楚,我将为您提供一些代码。

这是我要从中删除条目的对象:

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; }

关于javascript - 从javascript中的对象中删除给定的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55746149/

相关文章:

java - 具有嵌套 ArrayList 的对象的线程安全 HashMap

Javascript 发布/订阅实现适用于函数,但不适用于对象的方法

javascript - 如何使用/解析 JavaScript 字符串中的 HTML 实体和 Unicode 字符

python - 在 python 中,有没有办法在将对象传递给函数之前知道它是否为 "implements an interface"?

javascript - 引用及其在 JavaScript 中的工作方式

javascript - 当某些事情为真/成功时,如何使 PHP 脚本同时重定向并显示弹出框?

ios - 在 Swift 2.1 中查找数组中的对象

javascript - 按属性对对象 javascript 数组进行排序

javascript - 在 jQuery 插件中引用时使用哪个 - $(obj) vs obj

javascript - 在 Javascript 的同级属性中调用函数