0

推和拼接在这里不起作用。这是我的模型。我需要这个模型来构建我的表格。splice 删除所有内容, push 不执行任何操作。

export class Parameter {

  constructor(
    public asset: string,
    public wx: IWx[]
  ) {
  }

}

export interface IWx {
  [key: string]: IWxValue;
}

export interface IWxValue {
  yellowValue: any;
  redValue: any;
}

这是我的功能

  ajouteWx(pIndex: number, wxIndex: number) {
    console.log(pIndex);
    console.log(wxIndex);
    this._parameters[pIndex].wx = this._parameters[pIndex].wx.push({hello: {yellowValue: 5, redValue: 2}});
    this._parameters[pIndex].wx = this._parameters[pIndex].wx.splice(wxIndex, 0, {hello: {yellowValue: 5, redValue: 2}});
  }
4

1 回答 1

0

array.push返回一个数字,代表数组的新长度。

array.splice返回一个新的数组,包含删除的项目(如果有的话)。

所以,这里的问题是你用这两种方法返回的值覆盖了你的数组。

解决方案是您不必将它们分配给您的表,直接使用 push 和 splice,因为 push 和 splice 已经改变了原始数组:

this._parameters[pIndex].wx.push({hello: {yellowValue: 5, redValue: 2}});
this._parameters[pIndex].wx.splice(wxIndex, 0, {hello: {yellowValue: 5, redValue: 2}});

不要忘记初始化你的表 this._parameters[pIndex].wx (检查是否已经初始化)

于 2020-01-25T04:25:14.590 回答