javascript - Hvordan fjerne egenskaper fra et objektarray?


Jeg prøver å fjerne en egenskap fra et objektarray.

export class class1 {
  prop1: string;
  prop2: string;
  prop3: string;
}
export class class2 {
  myprop = [
    { prop1:'A', prop2:"1", prop3:"descr1" },
    { prop1:'B', prop2:"2", prop3:"descr2" },
    { prop1:'C', prop2:"3", prop3:"descr3" },
  ];
  get(): class1[] {
    return this.myprop ;
  }
  add(value: class1): void {
    this.myprop.push(value);
  }
}
var var1 = class2.get();
var var2 = 

Jeg vil at var2 skal inneholde noe som dette.

  [
    { prop1:'A', prop3:"descr1" },
    { prop1:'B', prop3:"descr2" },
    { prop1:'C', prop3:"descr3" },
  ];

Finnes det en måte å konvertere/kaste var1 til det ovenfor? Med andre ord, jeg vil gjerne fjerne prop2 fra var1 objekt-array og tilordne det til var2. Hvordan kan jeg gjøre det?

Svar #1

Dette virker som et flott tidspunkt å bruke .map()

var var1 = class2.get();
var var2 = var1.map(obj => ({prop1: obj.prop1, prop3: obj.prop3}));

Kort, søt, og gjør det du vil.

MDN-dokumentasjon for .map()

Svar #2

Du kan slette objektets egenskap slik, f.eks.

    var myprop = [
        {prop1: 'A', prop2: "1", prop3: "descr1"},
        {prop1: 'B', prop2: "2", prop3: "descr2"},
        {prop1: 'C', prop2: "3", prop3: "descr3"},
    ];

    myprop = myprop.filter(function (props) {
        delete props.prop2;
        return true;
    });
    console.log(myprop);

Relaterte artikler