Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

143
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda