Page 1 sur 1

J'ai codé un filtre pour trouver une belle ukrainienne sur un site de rencontre

Posté : 06 juil. 2026, 08:40
par lemiguel
Bonjour, ça fait 3 semaines que je bosse sur un petit script perso en JS... basiquement un truc qui parse des profils sur un site de rencontre pour m'aider à filtrer selon des critères précis. L'idée c'est de faire tourner sa dans un navigateur via une extension maison, avec du fetch et du DOM parsing.

Le truc qui me bloque c'est la gestion des attributs de nationalité. Sur le site en question (un site spécialisé pour rencontrer une belle ukrainienne, ce genre de plateforme internationale) les données de profil sont retournées en JSON mais la clé "nationality" est parfois null, parfois absente carrément, parfois c'est une string vide selon les endpoints. Du coup mon filtre plante ou renvoie des résultats incohérents.

Concrètement j'ai un truc du genre :
const profiles = data.filter(p => p.nationality === "UA") Sauf que sa marche pas si la clé est absente, ça throw une erreur ou ça retourne rien. J'ai essayé avec optional chaining :

const profiles = data.filter(p => p?.nationality === "UA")

C'est mieux mais les profils ou la clé existe mais vaut null sont quand même éliminés alors qu'ils pourraient matcher. Franchement j'arrive plus a savoir si c'est moi qui gère mal le null vs undefined ou si c'est le schéma JSON du site qui est juste inconsistant. Quelqu'un a déjà bossé sur ce genre de parsing avec des données mal normalisées ? Genre des APIs tierces ou le schéma change selon la version de l'endpoint, c'est des trucs compliqué à gérer proprement. J'aimerais avoir un filtre robuste qui couvre tous les cas sans 15 conditions imbriquées.

Re: J'ai codé un filtre pour trouver une belle ukrainienne sur un site de rencontre

Posté : 06 juil. 2026, 10:09
par webmaster
Bonjour

Le test p?.nationality === "UA" oblige à la condition stricte que le profil existe et que la nationalité soit UA
Pour ajouter que le profil puisse être aussi null ou undefined, il faut écrire une double condition avec un OR :

Code : Tout sélectionner

profiles = data.filter(p => p == null || p?.nationality === "UA")