En utilisant Lodash, j'essaie de trouver s'il existe une valeur dans la collection ou non.
S'il existe, je veux retourner true
sinon false
.
const d = [{
"country": "India",
"_id": ObjectId("5ad47b639048dd2367e95d48"),
"cities": []
}, {
"country": "Spain",
"_id": ObjectId("5ad47b639048dd2367e95d49"),
"cities": []
}];
Code d'extrait
Countries = ['India', 'Spain']
if (_.has(d, Countries)) {
console.log(true);
} else {
console.log(false);
}
Mais il renvoie toujours False. Il n'est pas recommandé pour moi d'utiliser lodash
quelqu'un peut-il suggérer une meilleure façon si possible.
3 réponses
ES6
Vous pouvez utiliser array.some()
et array.includes()
pour vérifier les entrées en double dans le tableau.
DEMO
const d = [{
"country": "India",
"_id": "5ad47b639048dd2367e95d48",
"cities": []
}, {
"country": "Spain",
"_id": "5ad47b639048dd2367e95d49",
"cities": []
}];
const Countries = ['India', 'Spain'];
console.log(d.some(({country}) => Countries.includes(country)))
.as-console-wrapper { max-height: 100% !important; top: 0; }
Vous pouvez utiliser la combinaison des méthodes some
et includes
. Il renverra true
, si un élément de items
contient un pays du tableau countries
.
const items = [
{
"country": "India",
"_id": 'ObjectId("5ad47b639048dd2367e95d48")',
"cities": []
},
{
"country": "Spain",
"_id": 'ObjectId("5ad47b639048dd2367e95d49")',
"cities": []
}
];
const countries = ['India', 'Spain'];
const includes = _.some(items, item => _.includes(countries , item.country));
console.log(includes);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.5/lodash.min.js"></script>
Vous pouvez également le faire sans Lodash à l'aide de Javascripts intégrés dans la fonction filter
d.filter(item => item.country === "Spain"); //Would return an array of objects where the country's name property is Spain!
Si nous voulions en faire un booléen, nous pourrions le déclarer en tant que variable et affirmer que sa longueur est supérieure à 0 comme ceci:
let isSpanishCountry = d.filter(item => item.country === "Spain").length > 0; // console.log(isSpanishCountry) => true