web-dev-qa-db-fra.com

Comment obtenir l'index de l'objet dans le tableau en utilisant angulaire?

J'ai besoin d'avoir l'index d'un objet dans le tableau pour pouvoir supprimer cette partie du tableau. J'ai essayé d'utiliser ceci:

var index = this.urenRegistratie.indexOf(newDatum);

Mais il revient sans cesse -1 et je ne sais pas pourquoi cela se produit.

c'est la partie du code que j'ai. il récupère les données d'un formulaire en html et les place dans mon tableau, maintenant j'ai déjà une instruction if prête (exisitingDatum), mon code doit y être. Quelqu'un peut-il m'aider un peu?

 store(newValue:number, newDatum, newAanwezig, newComment){
    const existingDatum = this.urenRegistratie.find(billable => {
      return billable.datum === newDatum;
      return
    });

    if (!existingDatum) {
        let billable = new BillableHours();
        billable.datum = newDatum;
        billable.hours = +newValue;
        billable.aanwezig = newAanwezig;
        billable.comment = newComment;

        if(billable.aanwezig == "Aanwezig" && billable.hours !== 0 && billable.datum !== null) {
          this.urenRegistratie.Push(billable);
        }
    }

    if(existingDatum) {

    }

  }
7
straatrakker

Une solution simple et élégante consiste à utiliser _. IsEqual , qui effectue une comparaison approfondie à l'aide de la bibliothèque lodash

Package Npm - https://www.npmjs.com/package/lodash

const a = [
   { firstName: "Adam", LastName: "Howard" },
   { firstName: "Ben", LastName: "Skeet" },
   { firstName: "Joseph", LastName: "Skeet" }
];
const find =  { firstName: "Joseph", LastName: "Skeet" }

index = a.findIndex(x => _.isEqual(x, find));

console.log(index);
0
Amit Kumar