Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

138
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!