Recentemente, o projeto encontrou um problema em julgar objetos vazios. Revise as informações relevantes e resuma -as.
Julgando um objeto vazio não é mais o mesmo que julgar uma corda vazia, porque um objeto vazio também é um objeto, e a memória precisa ser alocada separadamente, em vez de estar vazia como uma corda, é um grande pote de arroz. Todos são iguais, como segue:
Como mostrado no código acima, pode -se descobrir que, seja um objeto vazio criado através do objeto literal ou um objeto vazio criado através do construtor de objeto, ele não é igual um ao outro.
1. Converta o objeto em string para comparação
Este método não é recomendado, mas é realmente o mais fácil de pensar. Usa principalmente json.stringify () para forçar o objeto. É publicado para uma olhada:
var a = {}; var b = new Object (); console.log ("Comparação resultado de literais de objeto:"+(json.stringify (a) == "{}")) console.log ("Comparação resultado do construtor:"+(json.stringify (b) == "{}"))Podemos conseguir que a comparação entre dois objetos vazios convertidos em strings seja verdadeira, o que pode resolver esse problema, mas não é recomendado. Vamos falar sobre o segundo método abaixo.
2.Por em loop
Use um loop for para iterar em todos os atributos para determinar se o objeto é um objeto vazio:
var a = {}; var b = new Object (); função isEmptyObject (obj) {for (var tecla em obj) {return false}; Return true}; if (isEmptyObject (a)) {alert ("a é um objeto vazio")} if (isEmptyObject (b)) {alert ("b é um objeto vazio")}Use o loop for para loop do objeto ao fazer o loop e o subscrito de loop correspondente ao fazer o loop da matriz, como:
var B = ["Hello", "My", "World"] para (var índice em b) {console.log (b [index]);} // Olá, meu mundoO exposto acima é todo o conteúdo (título) trazido a você pelo editor. Espero que você apoie mais wulin.com ~