0
votes

Itérer via une gamme d'objets et vérifiez s'il a donné un bien ou non à l'aide de TOPScript ou JavaScript

dans mon application angulaire 6, j'ai en dessous de l'objet JSON qui est extrait à partir du backend.

"participants": [{
        "dateJoin": 1520409578,
        "dateLeft": 0,
        "firstName": "edh",
        "internalId": 165,
        "invitedBy": "edh",
        "lastName": "edh",
        "userId": "edh",
        "key":"data"

    }, {
        "dateJoin": 1520409578,
        "dateLeft": 0,
        "firstName": "",
        "internalId": 166,
        "invitedBy": "edh",
        "lastName": "",
        "userId": "ATB"
    }],
    "dataInAB": "ATB",
    "subject": "test ",
    "unreadMessageCount": 0,
    "updateDate": 1520585258,
    "updatedBy": "atb"
}


2 commentaires

Participants est un tableau, vous pouvez donc faire une boucle sur chaque élément un chèque si cet élément a la propriété. Comme: participants.foreach (obj => {if (obj.hasownProperty ("clé")) {// faire quelque chose}})


S'il vous plaît visitez centre d'aide , prendre tour pour voir quoi et Comment demander . Faites des recherches, recherchez des sujets connexes sur vous? Si vous êtes coincé, postez un exemple de reproductible minimal de votre tentative, notant la sortie et la sortie attendue.


3 Réponses :


0
votes

Si vous souhaitez vérifier si une array a un objet avec la propriété code> code>, puis utilisez une méthode code>. Si vous souhaitez obtenir tous les objets dans le tableau, qui a clé code>, puis utilisez le filtre code> méthode:

p>

const arr = [{
    "dateJoin": 1520409578,
    "dateLeft": 0,
    "firstName": "edh",
    "internalId": 165,
    "invitedBy": "edh",
    "lastName": "edh",
    "userId": "edh",
    "key": "data"

}, 
{
    "dateJoin": 1520409578,
    "dateLeft": 0,
    "firstName": "",
    "internalId": 166,
    "invitedBy": "edh",
    "lastName": "",
    "userId": "ATB"
}];

const hasKey= arr.some(s => s.key);
console.log(`hasKey: ${hasKey}`);
const objectsWithKeyProperties = arr.filter(f => f.key);
console.log(`objectsWithKeyProperties :`, objectsWithKeyProperties);


0 commentaires

0
votes

Vous pouvez utiliser le filtre Array.pototype.filter () code> pour récupérer tous les éléments d'un tableau correspondant à votre filtre.

La fonction accepte une fonction de rappel comme argument qui doit renvoyer vrai code > Pour conserver l'élément ou false code> pour déposer l'élément. La fonction que de retourner un nouveau tableau contenant tous les éléments correspondant au filtre: p> xxx pré>

pour votre problème, vous vérifieriez si la propriété requise est non définie code>: p> xxx pré>

Cette fonction renvoie une nouvelle matrice, contenant tous les objets ayant une propriété nommée clé em>. p>

Nous pouvons faire Il manifeste de la magie JavaScript et omettez le ! == non défini code> car dans un si code> condition, non défini code> est égal à faux et à tout autre résultat ( Sauf boolean false code>) est égal à true code>: p> xxx pré>

extrait: strong> p> p>

console.log([1, 2, 3, 4, 5].filter((num) => num > 3));

const participants = [
  {name: "John", key: "zero"},
  {name: "Prince"}
];

console.log(participants.filter((participant) => participant.key));


0 commentaires

0
votes

Essayez comme ceci:

Démo de travail strong> p>

getValueOfKey() {
    for (var obj of this.data.participants) {
      if(obj.hasOwnProperty('key')){
         return obj.key;
      }
    }
}


0 commentaires