Arrays 角度8-通过参考输入

Arrays 角度8-通过参考输入,arrays,angular,input,reference,Arrays,Angular,Input,Reference,我不理解这种情况。 我有一个将动物数组传递给子组件的父组件 this.animals=[]; 家长: export class Parent { animals: Animal[]=[{},{}]; } <app-child [animals]="animals"></app-child> 我知道它是通过引用传递的。当我尝试清除子组件中的动物数组时 this.animals=[]; 然后父组件中的数组不会更改(它不是空的)。有人能给我解释一下原因吗?你如何检查

我不理解这种情况。 我有一个将动物数组传递给子组件的父组件

this.animals=[];
家长:

export class Parent {
  animals: Animal[]=[{},{}];
}

<app-child [animals]="animals"></app-child>
我知道它是通过引用传递的。当我尝试清除子组件中的动物数组时

this.animals=[];

然后父组件中的数组不会更改(它不是空的)。有人能给我解释一下原因吗?

你如何检查它没有出现在parents数组中?它适合我@hoo982什么是
动物。添加
?你应该用推的。@yurzui我错了。你是对的。它起作用了。我的目标是从子组件中清除此数组。为此,我使用了
this.animals=[]
。在这种情况下,父数组保持不变。你知道为什么吗?我原以为情况和帖子里描述的一样,但显然不是这样。很抱歉。那是因为您正在重写引用,而不是对其进行变异。您可以使用
this.anists.length=0