Recientemente, el proyecto encontró un problema para juzgar objetos vacíos. Revise la información relevante y resumala.
Juzgar un objeto vacío ya no es lo mismo que juzgar una cadena vacía, porque un objeto vacío también es un objeto, y la memoria debe asignarse por separado, en lugar de estar vacía como una cadena, es una gran olla de arroz. Todos son iguales, como sigue:
Como se muestra en el código anterior, se puede encontrar que si se trata de un objeto vacío creado a través del objeto literal o un objeto vacío creado a través del constructor del objeto, no es igual entre sí.
1. Convertir el objeto a la cadena para comparar
No se recomienda este método, pero de hecho es el más fácil de pensar. Utiliza principalmente json.stringify () para forzar el objeto. Se publica para un vistazo:
var a = {}; var b = nuevo objeto (); console.log ("Resultado de comparación de literales de objetos:"+(json.stringify (a) == "{}")) console.log ("Resultado de comparación de constructor:"+(json.stringify (b) == "{}"))))Podemos obtener que la comparación entre dos objetos vacíos convertidos en cadenas sea cierto, lo que puede resolver este problema, pero no se recomienda. Hablemos del segundo método a continuación.
2. para en bucle
Use un bucle para en el bucle para iterar a través de todos los atributos para determinar si el objeto es un objeto vacío:
var a = {}; var b = new Object (); function isEtimtyObject (obj) {for (var key en obj) {return false}; return true}; if (isEtimtyObject (a)) {alert ("A es un objeto vacío")} if (isEtimtyObject (b)) {alerta ("b es un objeto vacío")}Use el bucle for en bucle para bucle al objeto al bucle, y el subíndice de bucle correspondiente al bucle de la matriz, como:
var b = ["hola", "my", "mundo"] para (índice var en b) {console.log (b [index]);} // Hola mi mundoLo anterior es todo el contenido (título) presentado por el editor. Espero que apoyes a Wulin.com más ~