J'ai un tableau; 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> 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);
5 Réponses :
Vous pouvez utiliser p> 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.
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);
Vous devez utiliser la méthode du filtre: 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. p> p>
Vous pouvez utiliser Méthode de filtre de tableau JavaScript
Brièvement p> Array .Filter code> en boucle sur votre réseau et exécutez le rappel sur chaque élément: p>
résultat code> li>
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)
Merci Ali, c'est exactement ce que je voulais.
@Noobdoez content de pouvoir aider :)
Essayez 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);
Utilisez le filtre p> code> avec
objet.values code> et
chaque code> et utilisez
couper code> pour vous assurer qu'il exclut les espaces:
.as-console-wrapper { max-height: 100% !important; top: auto; }
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?