@jetonpeche/array-extension
v1.0.0
Published
Ajout de methodes d'extension au array
Downloads
4
Readme
Array extension
Projection
filtre
Verification
Opération
Ecriture
where
Ajouter un filtre AND logique
ATTENTION Les filtres ne sont pas appliqué
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.where(x => x.age > 1);
liste.where(x => x.nom.includes("2") && x.age > 1);
// les deux where equivaut a un AND logique ou a celui du dessus
liste.where(x => x.nom.includes("2")).where(x.age > 1);whereOr
Ajouter un filtre OR logique
ATTENTION Les filtres ne sont pas appliqué
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.whereOr(x => x.age > 1);
liste.whereOr(x => x.age > 1).whereOr(x => x.age <= 5);all
Verifier que tout les elements de la liste satisfait la condition
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
// true / false
liste.all(x => x.age >= 1);
liste.where(x => x.age > 1).all();any
Verifier qu'un element de la liste rempli la / les condition(s)
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
// true / false
liste.any(x => x.age > 1);
liste.where(x => x.age > 1).any();sum
Addictionner les chiffres
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
let listeNombre = [1, 5, 10];
liste.sum(x => x.age);
listeNombre.sum();min
Recuperer la valeur minimum de la liste
Exemple
let listeNombre = [1, 5, 10];
listeNombre.min();minBy
Recuperer l'element avec la valeur minimum de la liste en fonction d'une clé
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.minBy(x => x.age);max
Recuperer la valeur maximum de la liste
Exemple
let listeNombre = [1, 5, 10];
listeNombre.max();maxBy
Recuperer l'element avec la valeur maximum de la liste en fonction d'une clé
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.maxBy(x => x.age);average
Calculer la moyenne de la liste
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
let listeNombre = [1, 5, 10];
liste.average(x => x.age);
listeNombre.average();orderBy
Ordonne la liste du plus petit au plus grand ou par ordre alphabetique
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.orderBy(x => x.nom);
liste.orderBy(x => x.age);orderByDesc
Ordonne la liste du plus grand au plus petit ou par ordre anti-alphabetique
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.orderByDesc(x => x.nom);
liste.orderByDesc(x => x.age);take
Prendre un nombre X d'element de la liste à partir du debut
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
// prend les deux 1er element de la liste
liste.take(2);takeLast
Prendre un nombre X d'element de la liste à partir de la fin
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
// prend les deux derniers de la liste
liste.takeLast(2);skip
Prendre un nombre X d'element de la liste à partir du debut
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
// prend les element de la liste a partir du 2e
liste.skip(2);skipLast
Prendre un nombre X d'element de la liste à partir de la fin
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
// prend les element de la liste a partir du 2e
liste.skipLast(2);toArray
Appliquer les filtres et récuperer la liste
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.where(x => x.age > 1).toArray();toJson
Appliquer les filtres et récuperer la liste sous forme JSON
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.toJson();select
Appliquer les filtres et récuperer la liste et les valeurs choisis de l'element
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.select(x => ({
nomModifier: x.nom
}));
// equivalent a toArray()
liste.select(x => x);selectMany
Appliquer les filtres et récuperer la liste d'un element de la liste source
Exemple
let liste = [
{ nom: "nom 1", age: 1, listeEnfant: [{ taille: 100, nom: "nom enfant 1" }] },
{ nom: "nom 2", age: 5, listeEnfant: [{ taille: 500, nom: "nom enfant 2" }] },
{ nom: "nom 3", age: 10, listeEnfant: [{ taille: 1000, nom: "nom enfant 3" }] }
];
liste.selectMany(x => x.listeEnfant);
liste.selectMany(x => x.listeEnfant, (parent, element) => ({ taille: element.taille }));firstOrDefault
Applique les filtres et recuperer le 1er element du resultat
Exemple
let liste = [
{ nom: "nom 1", age: 1, listeEnfant: [{ taille: 100, nom: "nom enfant 1" }] },
{ nom: "nom 2", age: 5, listeEnfant: [{ taille: 500, nom: "nom enfant 2" }] },
{ nom: "nom 3", age: 10, listeEnfant: [{ taille: 1000, nom: "nom enfant 3" }] }
];
liste.where(x => x.age > 1).firstOrDefault();
// equivalent
liste.firstOrDefault(x => x.age > 1);lastOrDefault
Applique les filtres et recuperer le dernier element du resultat
Exemple
let liste = [
{ nom: "nom 1", age: 1, listeEnfant: [{ taille: 100, nom: "nom enfant 1" }] },
{ nom: "nom 2", age: 5, listeEnfant: [{ taille: 500, nom: "nom enfant 2" }] },
{ nom: "nom 3", age: 10, listeEnfant: [{ taille: 1000, nom: "nom enfant 3" }] }
];
liste.where(x => x.age > 1).lastOrDefault();
// equivalent
liste.lastOrDefault(x => x.age > 1);insert
Ajouter un element à une position spécifique dans la liste
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
liste.insert(0, { nom: "nom 0", age: 0 });remove
Supprimer des elements de la liste sous condition(s)
Exemple
let liste = [
{ nom: "nom 1", age: 1 },
{ nom: "nom 2", age: 5 },
{ nom: "nom 3", age: 10 }
];
// supprimer le / les element(s) qui ne respect pas la condition
liste.where(x => x.age > 1).remove();
// equivalent
liste.remove(x => x.age > 1);update
Mise à jour des elements de la liste
Exemple
let liste = [
{ nom: "nom 1", age: 1, obj: { ville: "ville 1" } },
{ nom: "nom 2", age: 5, obj: { ville: "ville 2" } },
{ nom: "nom 3", age: 10, obj: { ville: "ville 3" } }
];
// met a jour le / les element(s) qui respect pas la condition
liste.where(x => x.age > 1).update({
nom: "coucou",
nouvelleCle: "salut",
obj: {
ville: "village"
}
});updateMany
Mise à jour la liste d'un element de la liste
Exemple
let liste = [
{ nom: "nom 1", age: 1, obj: [{ ville: "ville 1" }] },
{ nom: "nom 2", age: 5, obj: [{ ville: "ville 2" }] },
{ nom: "nom 3", age: 10, obj: [{ ville: "ville 3" }] }
];
liste.updateMany(x => x.obj, {
ville: "coucou"
});
// condition pour appliquer la modification de liste obj
liste.updateMany(
x => x.obj.where(y => y.ville == "ville 2").toArray(),
{ ville: "coucou" }
);range
Creer une liste de nombre
Exemple
let liste = Array.range(-2, 3);
let liste = Array.range(1, 5);
/**
* [-2, -1, 0]
* [1, .., 5]
* /repeat
Creer une liste avec X fois la valeur
Exemple
let liste = Array.repeat({ ville: "ville" }, 10);
let liste = Array.repeat("coucou", 5);groupBy
Groupe les elements d'une liste
Exemple
let liste = [
{ ville: "ville 1", age: 1 },
{ ville: "ville 2", age: 5 },
{ ville: "ville 1", age: 10 }
];
let map = liste.groupBy(x => x.ville);
let map = liste.select(x => ({ age: x.age })).groupBy(x => x.age % 2);elementAtOrDefault
Applique les filtres et recuperer l'element à l'index choisi dans le resultat
Exemple
let liste = [
{ ville: "ville 1", age: 1 },
{ ville: "ville 2", age: 5 },
{ ville: "ville 1", age: 10 }
];
let retour = liste.elementAtOrDefault(2);countBy
Applique les filtres, regroupe et compte le nombre d'element par groupe
Exemple
let liste = [
{ ville: "ville 1", age: 1 },
{ ville: "ville 2", age: 5 },
{ ville: "ville 1", age: 10 }
];
let retour = liste.countBy(x => x.ville);distinct
Recuperer les elements de la liste sans doublons
Exemple
let liste = [
{ ville: "ville 1", age: 1 },
{ ville: "ville 2", age: 5 },
{ ville: "ville 1", age: 1 }
];
let retour = liste.distinct();distinctBy
Recuperer les elements de la liste sans doublons sur une regle spécifique
Exemple
let liste = [
{ key: "ville 1", value: [13, 12] },
{ key: "ville 2", value: [13, 12] }
];
let retour = liste.distinctBy(x => x.ville);zip
Zippe l'instance actuelle avec une liste en paires ou via une fonction
s'arrête au plus court
Exemple
let listeA = [1, 2, 3, 4, 5, 6];
let listeB = ["A", "B", "C", "D", "E", "F"];
let retour = listeA.zip(listeB);
let retour = listeA.zip(listeB, (p1, p2) => `coucou p1: ${p1} et p2: ${p2}`);union
Combiner un tableau a l'instance actuelle en supprimant les doublons
Exemple
let listeA = [
{ ville: "ville 1", age: 1 },
{ ville: "ville 2", age: 5 },
{ ville: "ville 3", age: 10 }
];
let listeB = [
{ ville: "ville 1", age: 1 },
{ ville: "ville 2", age: 5 },
{ ville: "ville 4", age: 10 }
];
let retour = listeA.union(listeB);unionBy
Combiner un tableau a l'instance actuelle en supprimant les doublons,
en se basant sur une propriété pour éliminer les doublons
Exemple
let listeA = [
{ ville: "ville 1", age: 1 },
{ ville: "ville 2", age: 5 },
{ ville: "ville 3", age: 10 }
];
let listeB = [
{ ville: "ville 1", age: 1 },
{ ville: "ville 2", age: 5 },
{ ville: "ville 4", age: 10 }
];
let retour = listeA.unionBy(listeB, x => x.age);