Cómo hacer valores de objetos deepscan incluyendo matrices de niños -- typescript campo con iteration camp Relacionados El problema

How to deepscan object values including children arrays


1
vote

problema

Español

Estoy tratando de obtener todos los valores de un objeto. El objeto también incluye matrices y esas matrices de objetos contienen matrices.

  const iterate = (obj) => {     Object.keys(obj).forEach(key => {         console.log(`key: ${key}, value: ${obj[key]}`)          if (typeof obj[key] === 'object') {             iterate(obj[key])         }     }) }   

Actualmente solo muestra los objetos de "nivel superior"

Por ejemplo, si tengo un

  class foo; a: string; b: string; c SomeObject[];   

La parte de SomeObject siempre es solo un "objeto". Pero también necesito los valores de esos objetos también.

Original en ingles

I'm trying to get all values of an object. Object also includes arrays and those array of objects contain arrays.

const iterate = (obj) => {     Object.keys(obj).forEach(key => {         console.log(`key: ${key}, value: ${obj[key]}`)          if (typeof obj[key] === 'object') {             iterate(obj[key])         }     }) } 

Currently it only shows the "higher level" objects

For example if I have a

class foo; a: string; b: string; c SomeObject[]; 

The SomeObject part is always just a "Object". But I need the values of those objects too.

     
     
     

Lista de respuestas

0
 
vote

Simplemente verifique si es una matriz y maneja especialmente:

  const iterate = (obj) => {     Object.keys(obj).forEach(key => {         const value = obj[key];         console.log(`key: ${key}, value: ${value}`)          if (Array.isArray(obj)) {             for (let arrayItem of obj) {                 iterate(arrayItem);             }         }          else if (typeof value === 'object') {             iterate(value)         }     }) }   

Esto debería funcionar para todos los literales JSON, pero no funcionará de manera intuitiva para cosas como conjuntos o mapas.

 

Just check if it is an array and handle it specially:

const iterate = (obj) => {     Object.keys(obj).forEach(key => {         const value = obj[key];         console.log(`key: ${key}, value: ${value}`)          if (Array.isArray(obj)) {             for (let arrayItem of obj) {                 iterate(arrayItem);             }         }          else if (typeof value === 'object') {             iterate(value)         }     }) } 

This should work for all JSON literals but won't work intuitively for things like sets or maps.

 
 

Relacionados problema

3461  ¿Cómo iterarme de manera eficiente sobre cada entrada en un mapa de Java?  ( How do i efficiently iterate over each entry in a java map ) 
Si tengo un objeto que implementa la interfaz Map en Java y deseo iterar sobre cada par contenida en él, ¿cuál es la forma más eficiente de pasar por el map...

45  ¿Cómo iterar a través de un arraylist de objetos de arraylist de objetos?  ( How to iterate through an arraylist of objects of arraylist of objects ) 
usando un ejemplo: Diga que tengo una llamada de clase Gun . Tengo otra llamada de clase Bullet . Clase Gun tiene un Lista de Array de Bullet . a...

0  ¿Cómo obtener el número de índice dentro de $ .click () de jQuery?  ( How to get index number inside click of jquery ) 
$("span.ws_label").click(function() { }) por selector "span.ws_label" Hay 5 elementos seleccionados, Cuando se hace clic en uno de ellos, ¿Cómo sabe...

0  Necesito ayuda para convertir el patrón iterativo en fórmula  ( Need help converting iterative pattern into formula ) 
var = 8 itr 1: var == 8 (8 * 1) itr 2: var == 24 (8 * 3) itr 3: var == 48 (8 * 6) itr 4: var == 80 (8 * 10) itr 5: var == 120 (8 * 15) Patrón: (VAR ...

0  Prólogo de iteración apagado por 1  ( Prolog iteration off by 1 ) 
Tengo un iterador llamado myfor de modo que cuando llame myfor(3,7,X). Quiero que devuelva X = [3, 4, 5, 6, 7] . Sin embargo, este código solo devuelve ...

107  ¿Cuál es la forma más segura de iterar a través de las llaves de un hash de Perl?  ( Whats the safest way to iterate through the keys of a perl hash ) 
Si tengo un hash Perl con un montón de pares (clave, valor), ¿cuál es el método preferido de iteración a través de todas las teclas? He escuchado que el uso d...

5  ¿Cómo iteré una colección ILIST ILIST en el orden inverso?  ( How do i iterate a net ilist collection in the reverse order ) 
Tengo un ILIST que contiene elementos (PRIMER PADRE), deben agregarse a un documento de diagrama en el orden inverso para que se agregue el padre por última v...

51  Usando 'in' para que coincida con un atributo de los objetos de Python en una matriz  ( Using in to match an attribute of python objects in an array ) 
No recuerdo si estaba soñando o no, pero parece que me recuerdo que hay una función que permitió algo como, foo in iter_attr(array of python objects, attri...

10  ¿Cuál es el método más rápido / seguro para iterar sobre un hashset?  ( What is the fastest safest method to iterate over a hashset ) 
Todavía soy bastante nuevo en C #, pero noté las ventajas a través de las publicaciones del foro de Uso de un HashSet en lugar de un 9988777663 en casos e...

2  Utilizando JavaScript / JQery para generar accesorios  ( Using javascript jquery to generate fixtures ) 
Estoy juntando una herramienta para un colega que ayuda a crear una bonita lista de accesorios. Tengo alrededor de 2/3 a través de la herramienta, recolectand...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos