当前位置: 首页 > 知识库问答 >
问题:

Javascript删除数组/对象中的递归属性[重复]

宋智明
2023-03-14

我有一个如下所示的对象;

{
    "containers": [
        {
            "fields" : {
                "fields": {
                    "fields": {},
                    "prop1": {},
                    "prop2": {}
                },
                "prop1": {},
                "prop2": {}
            }
        },
        {
            "fields" : {
                "fields": {
                    "fields": {},
                    "prop1": {},
                    "prop2": {}
                },
                "prop1": {},
                "prop2": {}
            }
        }       
    ]
}
{
    "containers": [
        {
            "fields" : {
                "prop1": {},
                "prop2": {}
            }
        },
        {
            "fields" : {
                "prop1": {},
                "prop2": {}
            }
        }       
    ]
}

共有1个答案

章高朗
2023-03-14

可以通过以下方式迭代属性:

for (var property in object) {
    if (object.hasOwnProperty(property)) {
        // do stuff
    }
}

迭代属性需要这种额外的hasOwnProperty检查。这是必要的,因为对象的原型包含该对象的附加属性,这些属性在技术上是该对象的一部分。在这里你也可以检查你想要的任何情况。

 类似资料:
  • 问题内容: 我有一个要在Python中清理的JSON数组。我要删除该属性: data.json 我正在设置列表理解以删除该属性,但是我不确定如何创建关注以下内容的变量: 当我理解列表时,它返回一个空数组。我必须纠正什么才能使其正常工作? 问题答案: 解决您的问题的一种简单方法是使用以下方法删除不需要的密钥: 您应该添加一些安全检查,但是您知道了。

  • 我有一个具有和属性的对象数组: 我想从所有对象中删除属性,并在控制台中打印,如

  • 如何根据属性值从数组中删除所有对象? 在上面的代码中,它只删除一个对象。如何删除所有if匹配项?

  • 问题内容: 我想从数组中的每个对象中删除该属性。有没有比使用循环并从每个对象中删除它更好的方法了? 似乎应该有一种使用方式,或其他方式。我不知道。有想法吗? 问题答案: 唯一的其他方法是修饰,实际上是循环。 例如 : 笔记: 如果要与IE8兼容,则需要forEach的垫片。正如您提到prototype一样,prototype.js也有一个shim。 是最糟糕的“优化杀手”之一。使用它经常会破坏应用

  • 我想从数组中的每个对象中删除属性。有没有比使用循环并从每个对象中删除它更好的方法? 似乎应该有一种方法来使用或其他东西。我不知道。想法?

  • 问题内容: 如何通过匹配对象属性从数组中删除对象? 请只使用本机JavaScript。 我在使用接头时遇到麻烦,因为每次删除的长度都会减少。使用克隆并在原始索引上进行拼接仍然会给您带来长度减少的问题。 问题答案: 我以为你用过这样的东西? 修复bug所需要做的就是在下一次减少,然后(也可以选择向后循环): 为了避免线性时间删除,可以编写要 保留 在数组上的数组元素: 为了避免在现代运行时中进行线性