¿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

lodashy no esto se justifica solo por no necesitar elhasOwnPropertycheque molestoUtilice
_.forOwn().https://lodash.com/docs#forOwn
Tenga en cuenta que las
forOwnverificacioneshasOwnProperty, como suele ser necesario al recorrer las propiedades de un objeto.forInno hace esta comprobación.fuente
keyes 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
eaches la mejor respuesta a la pregunta central sobre cómo hacerlo con lodash.Como mencionó JohnnyHK, también existe el
hasmétodo que sería útil para el caso de uso, pero de lo que se dijo originalmentesetpuede 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..ofbucle. 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..ofbucle 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..ofciclo: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
_.invertfuente