Pour une raison quelconque, le résultat apparaît ici comme faux, mais le tableau contient ce dateId particulier.

Voir le code ci-dessous:

var pollOptions = [{"dateId": "183738", "answer": false}, {"dateId": "183738", "answer": true}];

var theDate = "183738";
var doesDateExist = theDate in pollOptions


document.getElementById("demo").innerHTML = doesDateExist;
1
Darryl Bartlett 8 avril 2020 à 13:24

3 réponses

L'opérateur in fonctionne pour les objets (pas sur les tableaux). Vous pouvez utiliser .some() méthode pour vérifier la présence d'une valeur spécifique dans un tableau d'objets:

var pollOptions = [
  {"dateId": "183738", "answer": false},
  {"dateId": "183738", "answer": true}
];

var theDate = "183738";
var doesDateExist = pollOptions.some(({ dateId }) => dateId === theDate);


document.getElementById("demo").innerHTML = doesDateExist;
<div id="demo"></div>
0
Mohammad Usman 8 avril 2020 à 10:28
var pollOptions = [{"dateId": "183738", "answer": false}, {"dateId": "183738", "answer": true}];
var theDate = "183738";

var doesDateExist  = Boolean(pollOptions.find(function(item) {
   return item.dateId === theDate
}))

console.log(doesDateExist )
0
GoranLegenda 8 avril 2020 à 10:34

Vous pouvez utiliser la méthode .includes() sur un tableau plutôt qu'un dans `, qui fonctionne sur les objets.

var pollOptions = [{"dateId": "183738", "answer": false}, {"dateId": "183738", "answer": true}];

var theDate = "183738";
var doesDateExist = pollOptions.map(item => item.dateId).includes(theDate);

document.getElementById("demo").innerHTML = doesDateExist;

De plus, j'utilise la fonction .map() pour diffuser votre objet dans un tableau contenant uniquement les dateIds. Ensuite, nous pouvons utiliser .includes()

0
Shane Creedon 8 avril 2020 à 10:32