0
votes

Comment exclure les valeurs et les clés vides dans la matrice avec jQuery?

J'ai un tableau; xxx pré>

donc, je veux supprimer des éléments si les valeurs sont vides. Si l'utilisateur a ajouté 2 informations de référence, je veux obtenir ces données comme ceci; p> xxx pré>

J'ai utilisé des méthodes mais ne fonctionne pas. Ceci est le dernier essai avec réduction et $ PrEREFDATA a cette matrice; P>

var arr = $prerefData.reduce((result, item) => {
    if (item.value != "") {
       result.push(item);
    }
    return result;
    }, []);
console.log(arr);


3 commentaires

Vous voulez dire vide toutes les propriétés, non?


@Eddie oui toutes les propriétés. Désolé pour le pauvre lang. :)


Duplicaté possible de Comment est-ce que je supprimais toutes les valeurs de chaîne NULL et vides d'un objet JSON?


5 Réponses :


0
votes

Vous pouvez utiliser filtre code>, utiliser objet.values ​​ code> pour extraire toutes les valeurs d'objets individuels.Utilisez chaque code> pour vérifier si toutes les valeurs de la matrice sont non cordes vides.

p>

let data = [{"pre_ref_fullname":"","pre_ref_position":"","pre_ref_phone":""},{"pre_ref_fullname":"","pre_ref_position":"not Empty","pre_ref_phone":""},{"pre_ref_fullname":"","pre_ref_position":"","pre_ref_phone":""},{"pre_ref_fullname":"Name","pre_ref_position":"Job","pre_ref_phone":"Number"},{"pre_ref_fullname":"Name2","pre_ref_position":"Job2","pre_ref_phone":"Number2"}]

let result = data.filter(o => Object.values(o).some(e => e.trim() !== ""));

console.log(result);


0 commentaires

0
votes

Vous devez utiliser la méthode du filtre: xxx

puisque les chaînes vides renvoient Faux, vous n'avez pas besoin d'ajouter des comparaisons S'il s'agit du seul cas de filtrer les éléments de filtrage dans la matrice.


0 commentaires

2
votes

Vous pouvez utiliser Méthode de filtre de tableau JavaScript

Brièvement Array .Filter code> en boucle sur votre réseau et exécutez le rappel sur chaque élément: p>

  • S'il renvoie true strud>: élément est inclus dans résultat code> li>
  • S'il renvoie faux fort>: élément est filtré sur li> ul>

    p>

    let data = [
      {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
      {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
      {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
      {pre_ref_fullname: "Name", pre_ref_position: "Job", pre_ref_phone: "Number"},
      {pre_ref_fullname: "Name2", pre_ref_position: "Job2", pre_ref_phone: "Number2"}
    ];
    
    let result = data.filter(function (item) {
      for(key in item) {
        if (item[key]) {
          // Means one of the object keys have values, include it in the result
          return true
        }
      }
    })
    
    console.log(result)


2 commentaires

Merci Ali, c'est exactement ce que je voulais.


@Noobdoez content de pouvoir aider :)



1
votes

Essayez xxx pré>

p>

let data = [
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
  {pre_ref_fullname: "", pre_ref_position: "", pre_ref_phone: ""},
  {pre_ref_fullname: "Name", pre_ref_position: "Job", pre_ref_phone: "Number"},
  {pre_ref_fullname: "Name2", pre_ref_position: "Job2", pre_ref_phone: "Number2"}
];

let r = data.filter(x=> Object.values(x).join(''));

console.log(r);


0 commentaires

0
votes

Utilisez le filtre code> avec objet.values ​​ code> et chaque code> et utilisez couper code> pour vous assurer qu'il exclut les espaces:

p>

.as-console-wrapper { max-height: 100% !important; top: auto; }


0 commentaires