node.js Array.Länge Problem
array.Länge ist die Rückgabe immer 0....
Seine Rückkehr 0 sogar einige hinzugefügte Element in dem array...
function validate () {
error = new Array();
if(req.body.category_id==""){
error['category_id'] = "Please select category";
}
if(req.body.text==""){
error['text'] = "Enter the word";
}
if(!(req.body.email!="" && req.body.email.test(/@/))){
error['email'] = "Invalid email id";
}
if((req.session.number1+req.session.number2)!=req.body.captcha){
error['captcha'] = "Captcha verification failed";
}
console.log(error.length);
console.log(error['category_id']);
if(error.length){
return false;
}else{
return true;
}
}
result of the console.log
//0
//Please select category
- dies ist keine Lösung, aber können Sie versuchen
console.log(error.length);
innerhalb der ersten IF-Bedingung. wir können lernen, mehr details nach einem Blick auf sein Ergebnis. - Mir scheint, dass Sie Ihr "Array" als eine Karte/Objekt.
- sein gehen, sonst Teil nur....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Javascript keine assoziativen arrays, machen es Objekt wie:
return Object.keys(obj).length
?Array.length
zählt nur Werte, deren Schlüssel numerische. Sie sind mit strings wie die keys, so dass Ihre Länge ist immer 0. Obwohl rechtliche, (da Arrays sind Objekte) das ist verwirrend, und ist es nicht eine gute Passform für ein array.Als @Sudhir vermuten lässt, verwenden Sie ein "Objekt" oder "hash" : die { } - notation. Viel klarer. (Obwohl ich überhaupt nicht mit ihm ändern mit dem Objekt.Prototyp)
Verwenden JavaScript.Prototyp
Aber erstellte Objekte mit dieser Funktion haben Sie diese Eigenschaft in Ihrer Prototyp-Kette (wie
prototype property
vonerror
Punkte auf das Objekt, hattest
Eigenschaft definiert.