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

删除对象中的圆形?

陶朝明
2023-03-14

是否可以删除对象内部的圆形类型?

比方说

result = {
a : [Array],
b : [Object],
c : [Circular],
d : 'string'
e : {
  x : [Circular],
  y : {
    z : [Circular]
    }
}
}

result = {
    a : [Array],
    b : [Object],
    d : 'string'
    }

我想过滤掉对象中的所有圆形类型。

尝试1:

因为每个对象的名称在子对象中也是相同的。我试图删除它,因为大多数孩子的圆形对象只指向父母。(事实上,我对这部分感到困惑)。这是我试图使用的代码。

let keys = Object.keys(obj)
keys.forEach(val => {
    if (obj[val] instanceof Object || obj[val] instanceof Array) {
        Object.values(obj[val]).filter(function (value, index, arr) {
            if (keys.indexOf(Object.keys(value)[index]) > 0) {
                delete obj[val][index]
            }
        })
    }
})

共有1个答案

家经纶
2023-03-14

您可以使用Set筛选出两次看到的对象:

const noCirculars = v => {
  const set = new Set; 
  const noCirculars = v => {
    if(Array.isArray(noCirculars))
      return v.map(noCirculars);
    if(typeof v === "object" && v !== null) {
      if(set.has(v)) return undefined;
      set.add(v);

      return Object.fromEntries(Object.entries(v)
       .map(([k, v]) => ([k, noCirculars(v)])));
    }
    return v;
  };
  return noCirculars(v);
};
 类似资料:
  • 我有以下型号: 当我运行下面的查询时,用户模型也被删除 有没有办法在不删除用户的情况下删除问题? 我试着重复这些问题但没有用 我认为查询集是懒惰的,所以也许我需要在删除之前评估它,所以我打印了它,但这不起作用。 我知道,将ForeignKey设置为null将为我提供诸如clear和remove之类的方法,但我不想这样做,因为我不希望出现任何孤立的用户问题。 我更新了ForeignKey,如下所示

  • 问题内容: 我对JavaScript的运算符有些困惑。采取以下代码: 执行完这段代码后,is ,但仍指与完全相同的对象。我猜这个对象是指向相同的对象。 这使我感到困惑,因为我希望写操作可以删除指向内存中的对象,而不仅仅是变量。 这是因为JavaScript的垃圾回收工作在保留/释放的基础,所以,如果我没有指向对象的任何其他变量,它 会 从内存中清除? (顺便说一下,我的测试是在Safari 4中完

  • 问题内容: 这是使用for每个循环从Java中的LinkedList中查找和删除项目的有效方法,是否可能会导致不一致: 问题答案: 其他人提到有效点,通常这不是您如何从集合中获取对象。但是,在这种情况下,因为您一旦退出循环就可以了。 但是,如果要在之后继续迭代,则需要使用迭代器。否则,您将获得,或更普遍的情况是未定义的行为。 所以,是的, 如果您不在别人之后,您会没事的。 对于那些说这将失败的人来

  • 问题内容: 我有以下两个实体: 1-播放列表: *保存或更新播放列表实体时,需要使用 *CascadeType.ALL 来保存和更新PlaylistadMap集合。 orphanRemoval = true :在删除播放列表实体时需要,PlaylistadMap引用也应删除。 2- PlaylistadMap: 使用我删除播放列表时,出现以下异常: 请告知如何解决此异常。 问题答案: 将 Fetc

  • 问题内容: 我试图遍历对象列表,从每个对象中删除一个元素。每个对象都是换行符。我试图然后按原样保存新文件,而对象中不包含任何元素。我知道这可能是一个简单的任务,但似乎无法完成这项工作。如果有人可以伸出援手,将不胜感激。谢谢。 } 我需要删除小时元素中包含的信息,但是信息并不总是相同的。有些包含全天,有些仅包含一两天的信息。我尝试使用的代码是Pyton,我整天都在搜索该代码以解决问题。我对Pytho

  • 问题内容: 如果满足条件,我需要从中删除一些对象,我想知道哪种方法会更有效。 情况如下:我有一个包含包含其他一些对象的类。我必须对此进行迭代,并删除满足特定条件的所有元素。据我所知,这些是我要删除的选项: 创建一个新的并添加不符合条件的元素。迭代之后,从旧的数组列表交换到没有元素的新数组列表。 创建一个新的并添加满足条件的元素。迭代后,使用传递要删除对象的方法。 有没有更有效的方法从中删除对象?