сплайс или пу sh проблема с массивом объекта с angular - PullRequest
0 голосов
/ 25 января 2020

pu sh и сращивание здесь не работает. это моя модель Мне нужна эта модель для построения моих таблиц. сплайс удаляй все и пу sh ничего не делает.

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 Ответ

0 голосов
/ 25 января 2020

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

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

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

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

...