Wie kann ich überprüfen, ob ein Array mit einer IF-Anweisung leer ist?
Ich habe dieses Array "acessos", das leer ist
...
constructor(props){
super(props);
this.state = {
acessos:[]
};
}
...
Dann versuche ich zu überprüfen, ob 'acessos' leer ist und ob es sich um Daten handelt. Ich habe es mit null versucht, aber ohne Ergebnisse. Wie kann ich überprüfen, ob leer ist?
...
if(this.state.acessos === null){
this.state.acessos.Push({'uuid': beacons.uuid, 'date':date});
this.setState({acessos: this.state.acessos});
} else {
...
Ich stimme Julien zu. Sie müssen es auch nicht mit null vergleichen. Du kannst es gerne schreiben
this.state.acessos && this.state.acessos.length > 0
Prüfen Sie einfach, ob Ihr Array existiert und eine Länge hat:
if (this.state.acessos && this.state.acessos.length) {
//your code here
}
this.state.acessos.length > 0
muss nicht geprüft werden. 0
ist ohnehin falsch, eine kleine Leistungsverbesserung.
Einen Leistungstest bezüglich 'array.length' vs 'array.length> 0' finden Sie hier: https://jsperf.com/test-of-array-length
Sie müssen nicht einmal die Länge seit ECMAScript 5.1 überprüfen. Sie können dieselbe Bedingung einfach wie folgt schreiben.
this.state.acessos && this.state.acessos.length
Standardmäßig prüft this.state.acessos.length
, ob die Länge NICHT undefiniert oder Null oder Null ist.