Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

141
Vistas
La matriz Javascript de json se imprime vacía pero tiene un objeto dentro

Estoy tratando de entender por qué Javascript imprime una matriz vacía cuando debería tener al menos un valor dentro. Por favor, revisa este código:

 detail = []; detail.cat1=[]; detail.cat2=[]; detail.cat3=[]; detail.cat4=[]; var newEntry = {"cod":"01","dt":"2021-10-02 09:07:21.205-07:00"}; detail.cat2.push(newEntry); console.log(detail); console.log(detail.length); console.log(detail.cat2);

Los resultados son:

 > Array [] > 0 > Array [Object { cod: "01", dt: "2021-10-02 09:07:21.205-07:00" }]

¿Cómo podría imprimir [] ya que tengo un objeto dentro? ¿Y cómo puede la longitud ser cero? Estaba usando cualquier editor en línea de Javascript, y el resultado es el mismo.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Dado que una matriz es realmente un objeto, podemos agregar métodos/propiedades directamente a una matriz individual.

Entonces, si desea ver las claves en un objeto, por ejemplo, Object.keys no lo verá, pero Reflect.ownKeys() sí.

La versión Reflect de defineProperty devolverá éxito o falla, mientras que Object devuelve el objeto aprobado.

Recuerde que Reflect.preventExtensions() evitará (como dice) que usted u otros los extiendan.

En cuanto a la pregunta sobre la longitud, ".longitud" da la longitud de los valores, no las propiedades, por lo que todavía da 0

about 4 years ago · Juan Pablo Isaza Denunciar

0

Array es una colección indexada de valores, lo que significa que puede colocar un elemento en un índice particular y obtener un elemento de un índice particular.

En el siguiente ejemplo, puede ver que si ya hay elementos en una matriz, puede obtener su length usando la propiedad de length .

Recuerde: la longitud de una matriz es (highest integer index at which the element is present in array + 1)

 const arr = [1, 2, 3, 4]; console.log(arr); // prints whole array console.log(arr.length); // prints length of an array console.log(arr[2]); // Element at index 2

Si establece el elemento en un índice particular, digamos arr[8] = "something" , entonces su length será 9

 const arr = []; arr[8] = "something"; console.log(arr.length) // 9


Es cierto que las matrices son objetos, por lo que puede establecer/obtener valores desde/hacia la matriz. Pero si establece una propiedad que no es un índice numerado, no aumentará su longitud, pero establecerá la propiedad en ese objeto de matriz como:

 const arr = []; arr["introduction"] = "I'm an array"; arr.property = "This is a property" console.log(arr.length); console.log(arr.introduction); console.log(arr.property);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Cuando se muestra una matriz, generalmente se llama al método predeterminado Array.prototype.toString . Esto en realidad llama a Array.prototype.join sin argumentos, por lo que produce una cadena separada por comas de los elementos de la matriz.

El método de unión solo devuelve propiedades que tienen un nombre entero positivo (un índice de matriz, que indica un elemento de matriz); join ignora otras propiedades.

De manera similar, solo los elementos de la matriz afectan la propiedad de longitud , normalmente las propiedades (es decir, aquellas que no tienen un índice de matriz para su nombre) no afectan la longitud .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda