проблема сращивания или выталкивания с массивом объектов с угловым

Push и splice здесь не работают. это моя модель. мне нужна эта модель для построения моих таблиц. 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}});
  }

1 ответ

array.push return Число, представляющее новую длину массива.

array.splice return Новый массив, содержащий удаленные элементы (если есть).

Итак, проблема в том, что вы перезаписываете свой массив значениями, возвращаемыми этими двумя методами.

Решение состоит в том, что вам не нужно назначать их своей таблице, используйте напрямую 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 (проверьте, инициализирована она уже или нет)

Другие вопросы по тегам