-1
votes

Comment vérifier si des objets dans un tableau d'objets ont tous une structure spécifique et ne sont pas une null?

Je reçois un tableau d'objets du serveur. Mais mon application se casse parce que certains objets n'ont pas une structure juste une valeur nulle et ma logique dépend de la vérification de certaines clés d'objet pour faire une chose ou une autre. Voici un exemple d'un tableau que je reçois:

[{
  clienTnames: {
    firstName: 'Jack',
    lastName: 'Jackson'
  }
}, {
  clienTnames: {
    firstName: 'John',
    lastName: 'Johnson'
  }
}, {
  clienTnames: null
}]


0 commentaires

4 Réponses :


0
votes

Vous pouvez créer un defaultobj code> avec toutes les propriétés par défaut. Ensuite, boucle via les éléments de matrice et de mise à jour qui ont Noms ClientNames Code> Configuration de la propriété sur NULL

P>

let array = [{clienTnames:{firstName:'Jack',lastName:'Jackson'}},{clienTnames:{firstName:'John',lastName:'Johnson'}},{clienTnames:null}]

const defaultObj = {
  firstName: '',
  lastName: ''
}

array.forEach(a => {
  if(!a.clienTnames) 
    a.clienTnames = { ...defaultObj }
})

console.log(array)


3 commentaires

N'utilisez pas de defaultobj car tous les éléments de tableau pointeront sur le même objet.


@Ritaj Ça ne le fera pas. Ça crée un clone à l'aide de la syntaxe de diffusion chaque boucle


Désolé j'ai commenté la mauvaise réponse. Vérifiez celui ci-dessous.



0
votes

Vous pouvez faire quelque chose comme ceci:

p>

const data = [{ clienTnames: { firstName: 'Jack', lastName: 'Jackson' } }, { clienTnames: { firstName: 'John', lastName: 'Johnson' } }, { clienTnames: null }];

let output = [];

output = data.map(element => {
    if (element.clienTnames) {
        return element;
    } else {
        return { clienTnames: { firstName: '', lastName: '' } };
    }
});

console.log(output);


0 commentaires

1
votes

Il suffit d'utiliser une fonction de carte: xxx


0 commentaires

0
votes
let array = [{
  clienTnames: {
    firstName: 'Jack',
    lastName: 'Jackson'
  }
}, {
  clienTnames: {
    firstName: 'John',
    lastName: 'Johnson'
  }
}, {
  clienTnames: null
}];

let targetArray;

targetArray = array.map((item) => {
  if(!item.clienTnames) {
    return { clienTnames: { firstName: '', lastName: '' } }
  }

  return item;
})


3 commentaires

N'utilisez pas de defaultobj car tous les éléments de tableau pointeront sur le même objet.


Que va-t-il arriver?


Si vous changez l'un des éléments, l'autre changera également.