amt: "10.00"
email: "[email protected]"
merchant_id: "sam"
mobileNo: "9874563210"
orderID: "123456"
passkey: "1234"
Ce qui précède est l'objet JSON que je traite. Je veux vérifier si la clé 'merchant_id' existe. J'ai essayé le code ci-dessous, mais cela ne fonctionne pas. Un moyen d'y parvenir?
<script>
window.onload = function getApp()
{
var thisSession = JSON.parse('<?php echo json_encode($_POST); ?>');
//console.log(thisSession);
if (!("merchant_id" in thisSession)==0)
{
// do nothing.
}
else
{
alert("yeah");
}
}
</script>
Essaye ça,
if(thisSession.hasOwnProperty('merchant_id')){
}
l'objet JS thisSession
devrait être comme
{
amt: "10.00",
email: "[email protected]",
merchant_id: "sam",
mobileNo: "9874563210",
orderID: "123456",
passkey: "1234"
}
vous pouvez trouver les détails ici
Il y a plusieurs façons de le faire, en fonction de votre intention.
thisSession.hasOwnProperty('merchant_id');
vous dira si thisSession a cette clé elle-même (c'est-à-dire pas quelque chose dont elle hérite ailleurs)
"merchant_id" in thisSession
vous dira si thisSession a la clé, peu importe où elle l'a eue.
thisSession["merchant_id"]
renverra false si la clé n'existe pas ou si sa valeur est évaluée à false pour quelque raison que ce soit (par exemple, s'il s'agit d'un littéral false
ou de l'entier 0, etc.).
(Je voulais le signaler même si je suis en retard à la fête)
À la question initiale, vous cherchiez essentiellement à trouver un "Not IN". Il semble que la recherche (2 liens ci-dessous) que je faisais ne m'appuie pas.
Donc, si vous vouliez faire un 'Not In':
("merchant_id" in x)
true
("merchant_id_NotInObject" in x)
false
Je recommanderais simplement de définir cette expression == à ce que vous recherchez
if (("merchant_id" in thisSession)==false)
{
// do nothing.
}
else
{
alert("yeah");
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/inhttp://www.w3schools.com/jsref/jsref_operators. asp
La vérification de type fonctionne également:
if(typeof Obj.property == "undefined"){
// Assign value to the property here
Obj.property = someValue;
}
Je modifie légèrement votre déclaration if et fonctionne (également pour obj hérité - regardez l'extrait)
if(!("merchant_id" in thisSession)) alert("yeah");
window.onload = function getApp() {
var sessionA = {
amt: "10.00",
email: "[email protected]",
merchant_id: "sam",
mobileNo: "9874563210",
orderID: "123456",
passkey: "1234",
}
var sessionB = {
amt: "10.00",
email: "[email protected]",
mobileNo: "9874563210",
orderID: "123456",
passkey: "1234",
}
var sessionCfromA = Object.create(sessionA); // inheritance
sessionCfromA.name = 'john';
if(!("merchant_id" in sessionA)) alert("merchant_id not in sessionA");
if(!("merchant_id" in sessionB)) alert("merchant_id not in sessionB");
if(!("merchant_id" in sessionCfromA)) alert("merchant_id not in sessionCfromA");
if("merchant_id" in sessionA) alert("merchant_id in sessionA");
if("merchant_id" in sessionB) alert("merchant_id in sessionB");
if("merchant_id" in sessionCfromA) alert("merchant_id in sessionCfromA");
}
function elementCheck(objarray, callback) {
var list_undefined = "";
async.forEachOf(objarray, function (item, key, next_key) {
console.log("item----->", item);
console.log("key----->", key);
if (item == undefined || item == '') {
list_undefined = list_undefined + "" + key + "!! ";
next_key(null);
} else {
next_key(null);
}
}, function (next_key) {
callback(list_undefined);
})
}
voici un moyen facile de vérifier si l'objet envoyé est contenir undefined ou null
var objarray={
"passenger_id":"59b64a2ad328b62e41f9050d",
"started_ride":"1",
"bus_id":"59b8f920e6f7b87b855393ca",
"route_id":"59b1333c36a6c342e132f5d5",
"start_location":"",
"stop_location":""
}
elementCheck(objarray,function(list){
console.log("list");
)