Domanda Come abbinare un dizionario vuoto in Javascript?


Dalla cosa REPL del nodo,

> d = {}
{}
> d === {}
false
> d == {}
false

Dato che ho un dizionario vuoto, come posso assicurarmi che sia un dizionario vuoto?


44
2018-05-20 13:27


origine


risposte:


function isEmpty(obj) {
  return Object.keys(obj).length === 0;
}

56
2018-05-20 13:35



Potresti estendere Object.prototype con questo isEmpty metodo per verificare se un oggetto non ha proprietà proprie:

Object.prototype.isEmpty = function() {
    for (var prop in this) if (this.hasOwnProperty(prop)) return false;
    return true;
};

19
2018-05-20 13:35



Dal momento che non ha attributi, a for il ciclo non avrà nulla da ripetere. Per dare credito dove è dovuto, ho trovato questo suggerimento Qui.

function isEmpty(ob){
   for(var i in ob){ return false;}
  return true;
}

isEmpty({a:1}) // false
isEmpty({}) // true

10
2018-05-20 13:32



Che ne dici di usare jQuery?

$.isEmptyObject(d)

10
2017-10-28 22:08



Questo è ciò jQuery usa, funziona bene. Anche se questo richiede lo script jQuery da utilizzare isEmptyObject.

isEmptyObject: function( obj ) {
    for ( var name in obj ) {
        return false;
    }
    return true;
}

//Example
var temp = {};
$.isEmptyObject(temp); // returns True
temp ['a'] = 'some data';
$.isEmptyObject(temp); // returns False

Se includere jQuery non è un'opzione, è sufficiente creare una funzione javascript pura separata.

function isEmptyObject( obj ) {
    for ( var name in obj ) {
        return false;
    }
    return true;
}

//Example
var temp = {};
isEmptyObject(temp); // returns True
temp ['b'] = 'some data';
isEmptyObject(temp); // returns False

8
2017-08-05 14:27



Sono lontano da un erudito di JavaScript, ma il seguente lavoro?

if (Object.getOwnPropertyNames(d).length == 0) {
   // object is empty
}

Ha il vantaggio di essere una chiamata di pura funzione a una riga.


2
2017-07-27 13:27



Dovresti controllare che fosse di tipo "oggetto" in questo modo:

(typeof(d) === 'object')

E poi implementa una funzione di "dimensione" breve per verificare che sia vuota, come menzionato qui.


1
2018-05-20 13:33



var SomeDictionary = {};
if(jQuery.isEmptyObject(SomeDictionary))
// Write some code for dictionary is empty condition
else
// Write some code for dictionary not empty condition

Questo funziona bene.


1
2017-12-23 11:24