0

I have an JavaScript array with an few elements person who have also multiple friends. These are also arrays from the elements person, which are also have friends and so on.

The dimensions are always different. I want to change the bool isActive of every person, but how can I loop over this array?

I can not do nested loops like

for(int i=0; i<people.length; i++) {
    people[i].isActive = false;
    for(int j=0; j<people[i].friends.length; j++) {
        people[i].friends[j].isActive = false;
    }
}

Because I do not know how many loops I need every time. So is there a way to loop over every elements, if the dimension is not known?

[{
    "_id": "6260127233256d2087fe5225",
    "isActive": false,
    "name": "Richard York",
    "friends": [{
        "id": "6260127247fbdbfc93bfe150",
        "isActive": false,
        "name": "Morales Wilkerson",
        "friends": [{
            "id": "62601272e138d5f44ac98eb3",
            "isActive": false,
            "name": "Anthony Cummings",
            "friends": [{
                "id": "62601272be338c3e6ad77953",
                "isActive": true,
                "name": "Burke Valentine",
                "friends": [{
                  "id": "626012722aefc063bd4d0b99",
                  "isActive": false,
                  "name": "Carey Patrick",
                  "friends": [{
                      "id": "626012727157cb04a275b55b",
                      "isActive": false,
                      "name": "Young Maynard"
                    },
                    {
                      "id": "62601272e134281ce78eea6e",
                      "isActive": true,
                      "name": "Merle Mullins"
                    }
                  ]
                }]
              },
              {
                "id": "6260127287286f90a422cc90",
                "isActive": true,
                "name": "Wendi Glover",
                "friends": [{
                    "id": "62601272d28cd77a6e684116",
                    "isActive": false,
                    "name": "Megan Dorsey",
                    "friends": [{
                        "id": "626012720f017b59d0a95b62",
                        "isActive": false,
                        "name": "Mckinney Thomas"
                      },
                      {
                        "id": "6260127297ae3d0cfda46200",
                        "isActive": false,
                        "name": "Ingram Cobb"
                      }
                    ]
                  },
                  {
                    "id": "62601272999d25fdb9ebbb57",
                    "isActive": false,
                    "name": "Ryan Byrd",
                    "friends": [{
                        "id": "62601272fad86888d4176dc4",
                        "isActive": false,
                        "name": "Hazel Pickett"
                      },
                      {
                        "id": "62601272248b5c73be575635",
                        "isActive": false,
                        "name": "Farley Pollard"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "id": "6260127217d6a7d57b4862e0",
            "isActive": true,
            "name": "Perry Reed",
            "friends": [{
                "id": "62601272164e0f07189938fb",
                "isActive": false,
                "name": "Janis Petersen",
                "friends": [{
                    "id": "626012729fe5f80251ee27fe",
                    "isActive": true,
                    "name": "Avila Hartman",
                    "friends": [{
                        "id": "6260127232df76fe2fe47acf",
                        "isActive": false,
                        "name": "Bette Conner"
                      },
                      {
                        "id": "62601272118980db757f4a72",
                        "isActive": false,
                        "name": "Camacho Phillips"
                      }
                    ]
                  },
                  {
                    "id": "626012722693c166ff849403",
                    "isActive": false,
                    "name": "Bright Leblanc",
                    "friends": [{
                        "id": "62601272278055f57871baf8",
                        "isActive": true,
                        "name": "Ballard Nichols"
                      },
                      {
                        "id": "62601272501bc27806a90c91",
                        "isActive": false,
                        "name": "Tracey Carver"
                      }
                    ]
                  }
                ]
              },
              {
                "id": "6260127235b047abe049eca4",
                "isActive": true,
                "name": "Belinda Harrington",
                "friends": [{
                  "id": "6260127281d798b10bd24fa7",
                  "isActive": false,
                  "name": "Potter Harris",
                  "friends": [{
                      "id": "626012726266024252195d30",
                      "isActive": false,
                      "name": "Briggs Shannon"
                    },
                    {
                      "id": "62601272246e464e4c0f226d",
                      "isActive": false,
                      "name": "Haney Miranda"
                    }
                  ]
                }]
              }
            ]
          }
        ]
      },
      {
        "id": "626012720570d38269ba11e2",
        "isActive": true,
        "name": "Marci Wooten",
        "friends": [{
            "id": "62601272df0a520e49d4b931",
            "isActive": true,
            "name": "Jeanette Peters",
            "friends": [{
              "id": "626012726ed027fe9de5f017",
              "isActive": true,
              "name": "Joy Huber",
              "friends": [{
                  "id": "62601272e91904cb3c71cc86",
                  "isActive": true,
                  "name": "Barber Franklin",
                  "friends": [{
                      "id": "6260127248c041a83be9ea51",
                      "isActive": false,
                      "name": "Patrick Vang"
                    },
                    {
                      "id": "62601272338c7be47b531034",
                      "isActive": false,
                      "name": "Lynn Howell"
                    }
                  ]
                },
                {
                  "id": "626012722bb9de756e4beafd",
                  "isActive": true,
                  "name": "Stone Burke",
                  "friends": [{
                      "id": "62601272b0e6e80019a26f87",
                      "isActive": false,
                      "name": "Holloway Stout"
                    },
                    {
                      "id": "626012726b20a4409b113bf3",
                      "isActive": true,
                      "name": "Ayala Cochran"
                    }
                  ]
                }
              ]
            }]
          },
          {
            "id": "62601272ef3618062f81223b",
            "isActive": true,
            "name": "Larsen Garrison",
            "friends": [{
                "id": "6260127205a58271b195c94b",
                "isActive": true,
                "name": "Gray Long",
                "friends": [{
                  "id": "6260127291eb1b18573c72a9",
                  "isActive": false,
                  "name": "Carmella Lancaster",
                  "friends": [{
                      "id": "62601272dc9a0cecaa4201f4",
                      "isActive": true,
                      "name": "Natasha Hendricks"
                    },
                    {
                      "id": "62601272ff294c758fda66c1",
                      "isActive": false,
                      "name": "Aimee Ramos"
                    }
                  ]
                }]
              },
              {
                "id": "6260127290348d6146db7c6d",
                "isActive": false,
                "name": "Molly Callahan",
                "friends": [{
                  "id": "62601272ddfe0bab1769a256",
                  "isActive": true,
                  "name": "Kellie Mayer",
                  "friends": [{
                    "id": "626012721da1a045f0d19000",
                    "isActive": true,
                    "name": "Angelica Whitehead"
                  }]
                }]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "_id": "62601272903aac279685fa5f",
    "isActive": true,
    "name": "Roman Morris",
    "friends": [{
        "id": "62601272191c0d0b8538e377",
        "isActive": false,
        "name": "Maxwell Kennedy",
        "friends": [{
          "id": "626012728496c147c85d8093",
          "isActive": false,
          "name": "Mullins Ross",
          "friends": [{
              "id": "6260127245a1df0453eadc69",
              "isActive": false,
              "name": "Elisa Mccray",
              "friends": [{
                  "id": "6260127289ba07412d246545",
                  "isActive": false,
                  "name": "Mckenzie Bartlett",
                  "friends": [{
                    "id": "62601272ef239d452a3f8356",
                    "isActive": true,
                    "name": "Mathews Barron"
                  }]
                },
                {
                  "id": "62601272e950eac38c139618",
                  "isActive": false,
                  "name": "Dickson Hutchinson",
                  "friends": [{
                      "id": "62601272a4121c14b1e8bc46",
                      "isActive": true,
                      "name": "Tyler Mccarty"
                    },
                    {
                      "id": "6260127233eec33ffeb4a428",
                      "isActive": false,
                      "name": "Melisa Foley"
                    }
                  ]
                }
              ]
            },
            {
              "id": "62601272a2bcf03a4fadbb6f",
              "isActive": false,
              "name": "Davidson Emerson",
              "friends": [{
                  "id": "62601272a283582ca662d9d7",
                  "isActive": true,
                  "name": "Alvarez Jenkins",
                  "friends": [{
                      "id": "6260127236c2e56e91081b63",
                      "isActive": true,
                      "name": "Coleman Clements"
                    },
                    {
                      "id": "62601272a229a19e2c1d5b20",
                      "isActive": false,
                      "name": "Leah Watkins"
                    }
                  ]
                },
                {
                  "id": "6260127211c171775a7e48a9",
                  "isActive": true,
                  "name": "Erma Mcpherson",
                  "friends": [{
                      "id": "6260127251cc951b1181f0d4",
                      "isActive": true,
                      "name": "Melanie Mendoza"
                    },
                    {
                      "id": "626012722c7a0d7f35a8dc06",
                      "isActive": false,
                      "name": "Desiree Cooley"
                    }
                  ]
                }
              ]
            }
          ]
        }]
      },
      {
        "id": "6260127298326565f0861478",
        "isActive": false,
        "name": "Karen Joyner",
        "friends": [{
          "id": "62601272fb6aa3050f721331",
          "isActive": false,
          "name": "Silvia Summers",
          "friends": [{
              "id": "62601272c16247da0950c03b",
              "isActive": true,
              "name": "Mary Duncan",
              "friends": [{
                  "id": "6260127269aaa4c7fd1fed0d",
                  "isActive": false,
                  "name": "Bender Fischer",
                  "friends": [{
                    "id": "626012722e1893e8ed26458c",
                    "isActive": false,
                    "name": "Carlson Owen"
                  }]
                },
                {
                  "id": "6260127250a0675ba7f36d46",
                  "isActive": false,
                  "name": "Richards Orr",
                  "friends": [{
                      "id": "6260127228816bffee65fd5e",
                      "isActive": true,
                      "name": "Best Carson"
                    },
                    {
                      "id": "626012729575b6c7495830ea",
                      "isActive": false,
                      "name": "Fuller Robbins"
                    }
                  ]
                }
              ]
            },
            {
              "id": "626012728bacdb8d66e69236",
              "isActive": false,
              "name": "Goodwin Hale",
              "friends": [{
                "id": "626012724f9ac8f4819b12c7",
                "isActive": true,
                "name": "Flossie Humphrey",
                "friends": [{
                    "id": "6260127228e2ccaf5d961fcd",
                    "isActive": true,
                    "name": "Ginger Baker"
                  },
                  {
                    "id": "6260127255748930da881a57",
                    "isActive": false,
                    "name": "Odonnell Calhoun"
                  }
                ]
              }]
            }
          ]
        }]
      }
    ]
  }
]
mplungjan
  • 169,008
  • 28
  • 173
  • 236
Ted Logan
  • 404
  • 1
  • 4
  • 15
  • Please visit the [help], take the [tour] to see what and [ask]. Do some research - [search SO for answers](https://www.google.com/search?q=iterate+recursively+object+site:stackoverflow.com). If you get stuck, post a [mcve] of your attempt, noting input and expected output using the [\[<>\]](https://meta.stackoverflow.com/questions/358992/ive-been-told-to-create-a-runnable-example-with-stack-snippets-how-do-i-do) snippet editor. – mplungjan Apr 20 '22 at 14:08
  • You should look into a _recursive_ approach then. (Or, if this is a data structure of your own making - maybe structure it differently to begin with? Depending on what you actually want to do with this, I am not sure this "nesting" is actually helpful, and whether a flat structure might not make more sense.) – CBroe Apr 20 '22 at 14:09

0 Answers0