Voir ci-dessous:
J'ai un groupe de const qui ressemble à ceci: p> et je voudrais finalement avoir deux tableaux qui ressemblent à ceci: < / p> Je construis un système de filtrage dans réagissant natif sur une carte, et je reçois une valeur si un type d'endroit est vrai (c'est-à-dire montrant) ou faux (c.-à-d. Non montrant), et maintenant, j'ai fait une fonction individuelle pour chaque type, c'est-à-dire: p> et mon filtre ressemble à ceci: p>
4 Réponses :
Cela semble être une chose inutile à faire parce que tous les booléens sont identiques. Au lieu de cela, vous pouvez créer une boucle pour compter le nombre de true code> s et false code>'s.
Il n'y a aucun moyen de get la liste des noms de variables déclarés dans une portée.Vous devez utiliser des objets pour cela.
Vous devez créer un objet dont les touches seront p> A, B ... Le code> et les valeurs seront true code> ou false code>. Ensuite, vous pouvez filtre () code> les touches de l'objet. P> const obj = {
a:false,
b:false,
c:true,
d:false,
e:true,
f:true
}
let truthy = Object.keys(obj).filter(x => obj[x]);
let falsy = Object.keys(obj).filter(x => !obj[x]);
console.log(truthy);
console.log(falsy)
Eh bien, si vous utilisez ES6 et au-delà, vous pouvez mettre tous vos constants dans un seul tableau, puis le filtrer par ses objets tristes ou faux. Le code suivant implémente cette idée:
Je ne sais pas pourquoi l'ES6 est pertinente pour la question. Vous pouvez le faire quand même. En fait, si vous n'utilisez pas ES6, vous n'aurez même pas le mot clé const code>, mais vous pouvez toujours faire la même chose avec var code>.
Pendant que vous utilisez ES6 de toute façon, faites O => O CODE> / O =>! O CODE> au lieu de la fonction sans terrain code> construction.
Voici une autre solution utilisant RXJS et son Partition opérateur:
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.5.2/rxjs.umd.min.js"></script>
Pourquoi ne pas garder ceux-ci dans un seul tableau ou un objet?
Déclarant trop de variables comme ça n'a aucun sens pour moi.
Avez-vous un tableau de constitus au début?
Vous dites que vous voulez
trueArray = [c, e, f] code> - voulez-vous dire que vous vouleztrueArray = [vrai, vrai, true] code>?@Maheerali idem ici. Puis les mettre en deux matrices n'a pas non plus de sens. Vous auriez un tableau où tous les articles sont
true code> mais vous ne savez pas quelles variables sont celles-ci. C'est un nombre très gaspillé de la quantité de pavillon que vous avez.@Vlaz je pense qu'il veut obtenir les noms de variables qui sont
true code> oufalse code>.Laisser le numéro de données = [A, B, C, D, E, F] .Filter (B => B) .Length code>; Le nombre de fals est tout simplement6 - numéros de code code>. Je ne sais pas ce que tu ferais avec cette information si ...Eh bien, si vous pouvez utiliser ES6, vous pouvez simplement faire cela:
const [truearray, falesarray] = [[[[[[C, E, F], [A, B, D]]; Code>.Voir les modifications ci-dessus pour le raisonnement