Je viens de commencer à utiliser lodash et j'ai ce tableau d'objets, où l'une des propriétés a un entier ou est nulle. Je sais comment filtrer le tableau pour les éléments qui sont nuls, mais comment vérifier s'il n'est pas nul?
Disons que j'ai quelque chose comme ça:
var users = [
{ 'user': 'barney', 'default': 1 },
{ 'user': 'dino', 'default': 0 },
{ 'user': 'wilma', 'default': 1 },
{ 'user': 'fred', 'default': null }
];
Et puis je veux quelque chose comme:
var notNullDefault = _.filter(sourceData, ['is_default', ! null ]); // objects with names barney, dino, wilma
var nullDefault = _.filter(sourceData, ['is_default', null ]); // object with name fred
Encore une fois, je suis nouveau dans le lodash, alors peut-être y a-t-il une meilleure façon d'y parvenir aussi.
Merci d'avance.
Vous pouvez créer quelques fonctions de prédicat qui vérifient les utilisateurs par défaut et non les utilisateurs par défaut:
var isDefaultUser = function(user){
return _.isNull(user.default);
}
var isNotdefaultUser = _.negate(isDefaultUser);
Ils pourraient ensuite être utilisés pour le filtrage, etc.
var defaultUser = _.filter(users, isDefaultUser);
var notDefaultUsers = _.filter(users, isNotdefaultUser);
// partition will be an array; first element contains the default users
// second element contains the non default users
var parition = _.partition(users, isDefaultUser);
let items = [1, 2, 4, null];
let isHaveNull = _.some(items, (item) => _.isNull(item));
console.log(isHaveNull);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Essayez avec quelque chose comme ça:
var notNullDefault = _.filter(users, function(elem) { return elem.default !== null; });
var nullDefault = _.filter(users, function(elem) { return o.default === null; }); // object with name fred
Le tableau renvoyé contient uniquement les éléments pour lesquels la fonction de rappel renvoie true
.
Ou, comme ils l'ont mis dans le manuel fin : Itère sur les éléments de la collection, renvoyant un tableau de tous les éléments, le prédicat retourne vrai pour. Le prédicat est invoqué avec trois arguments: (valeur, index | clé, collection).
Je pense que ces bibliothèques sont parfois juste une perte de temps. Au lieu d'apprendre un résumé spécifique dépendant de la bibliothèque, il est préférable de maîtriser les fonctions du tableau ES6 avec les flèches. Alors voilà!
var users = [
{ 'user': 'barney', 'default': 1 },
{ 'user': 'dino', 'default': 0 },
{ 'user': 'wilma', 'default': 1 },
{ 'user': 'fred', 'default': null }
],
userNull = [],
userFull = [];
users.forEach(e => e.default == void 0 ? userNull.Push(e) : userFull.Push(e));
document.write("<pre> userNull:\n" + JSON.stringify(userNull, null, 2) + "</pre>");
document.write("<pre> userFull:\n" + JSON.stringify(userFull, null, 2) + "</pre>");