Javascript Typescript getter/setter属性数组返回错误的值

Javascript Typescript getter/setter属性数组返回错误的值,javascript,angular,typescript,Javascript,Angular,Typescript,在我的组件中,我有一个名为data的数组,我需要在不同的部分设置值。我在@Input中添加了一个名为additionalValues的新数组参数。现在,我需要将传递的值转换为数据在新参数中计算值。这是我的密码: protected data: any[]; protected additionalValues: any[]; 我以这种方式更改了代码: private _data: any[] = []; get data(): any[] { return this._data; }

在我的组件中,我有一个名为
data
的数组,我需要在不同的部分设置值。我在
@Input
中添加了一个名为
additionalValues
的新数组参数。现在,我需要将传递的
转换为
数据
在新参数中计算值。这是我的密码:

protected data: any[];
protected additionalValues: any[];
我以这种方式更改了代码:

private _data: any[] = [];

get data(): any[] {
    return this._data;
}
set data(value) {
    this._data = value;

    if (this.additionalValues != null && this.additionalValues.length > 0) {
        this._data = [...this.additionalValues, ...value];
    }
}
问题出在哪里?当我尝试从
数据
中获取值时,我得到的是数组的大小而不是值,当我使用
查找
方法时,我会得到一个错误:

this.data.find(x => ...);

我试着用getter方法打印
\u data
数组的值,结果没问题。我还尝试在setter方法的and处打印
\u数据
,但始终没有问题。

我认为唯一缺少的是在附加值输入更改时更新数据内容:

ngOnChanges(){
    this.data = [] ;
  }

或者等到下一次setter调用更新数据。

您能告诉我们您在哪里设置数据变量的代码吗?@Z.Bolbol我通常这样设置值:
this.data=this.clone(this.allData)。在clone中,我只需执行以下操作:
JSON.parse(JSON.stringify(obj))
。私有财产
\u data
数据
错误时,它是正常的
这是什么。您上面提到的所有数据
?它不在问题中的代码片段中,您发布的代码工作正常。请创建一个数据库,它是来自服务器的数据副本。但在这种情况下,这并不重要,因为当我调用this.data时,我的私有属性
\u data
具有正确的值。在getter中,我只需
返回数据。如果我打印
console.debug(“DATA:,this.DATA,this.\u DATA)
我将看到
12数组(12)[]