带有角度对象的拼接或压入问题

问题描述 投票:0回答:1

推送和拼接在这里不起作用。这是我的模型。我需要这种模型来建立我的表。拼接会删除所有内容,而推送则无济于事。

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}});
  }
angular object weather splice weatherdata
1个回答
0
投票

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

array.splice return一个新的Array,其中包含已删除的项(如果有)。

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

解决方案是您不必将它们分配到表中,直接使用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(检查是否已初始化)

© www.soinside.com 2019 - 2024. All rights reserved.