¿Es posible recorrer las propiedades en un objeto JavaScript? Por ejemplo, tengo un objeto JavaScript definido como este:
myObject.options = {
property1: 'value 1',
property2: 'value 2'
};
Las propiedades se agregarán dinámicamente a este objeto. ¿Hay alguna manera de que pueda recorrer y verificar si existe una propiedad? ¿Si es así, cómo?
javascript
lodash
user3111277
fuente
fuente
lodash
y no esto se justifica solo por no necesitar elhasOwnProperty
cheque molestoUtilice
_.forOwn()
.https://lodash.com/docs#forOwn
Tenga en cuenta que las
forOwn
verificacioneshasOwnProperty
, como suele ser necesario al recorrer las propiedades de un objeto.forIn
no hace esta comprobación.fuente
key
es el segundo parámetro, pero tiene sentidoPara su deseo declarado de "comprobar si existe una propiedad", puede utilizar directamente Lo-Dash
has
.fuente
Definitivamente puedes hacer esto con Vanilla JS como ha demostrado stecb, pero creo que
each
es la mejor respuesta a la pregunta central sobre cómo hacerlo con lodash.Como mencionó JohnnyHK, también existe el
has
método que sería útil para el caso de uso, pero de lo que se dijo originalmenteset
puede ser más útil. Digamos que desea agregar algo a este objeto dinámicamente como lo mencionó:Así es como lo haría, según la descripción original.
fuente
Tomemos el siguiente objeto como ejemplo
Primero busque todas las claves en el obj
y luego recorrerlo
solo poniendo todo junto
fuente
En ES6, también es posible iterar sobre los valores de un objeto usando el
for..of
bucle. Sin embargo, esto no funciona de inmediato para los objetos de JavaScript, ya que debe definir una propiedad @@ iterator en el objeto. Esto funciona como sigue:for..of
bucle pide al "objeto que se repita en iteración" (llamémoslo obj1 para un objeto iterador. El bucle itera sobre obj1 llamando sucesivamente al método next () en el objeto iterador proporcionado y utilizando el valor devuelto como valor para cada iteración del bucle.Aquí hay un ejemplo:
Ahora podemos usar el
for..of
ciclo:fuente
Sería útil comprender por qué necesita hacer esto con lodash. Si solo desea verificar si existe una clave en un objeto, no necesita lodash.
Si busca ver si existe un valor, puede usar
_.invert
fuente