I’ve been reading up on hierarchical lists in the tutorials and the reddit pages, but I’m having problems understanding and implementing the way I’d like.

I’m working on this generator (I may turn it into a plug-in).

What I’d like to do is have a consumable list of the regions, then output a random state corresponding to that region. I’ve got it working correctly for a single region/state output, but I’m having trouble with the state output for the consumable list items.

Also, I used a tutorial example for the output so it currently says: “The Plains region contains Missouri” - which is correct.

I’d rather it said: “Missouri is in The Plains region” … but I couldn’t figure out how to format the output since the state is a sub item of the region, so I can’t swap the output in the HTML

Any help/tips would be appreciated!

  • VioneTM
    link
    English
    2
    edit-2
    7 months ago

    Since you have both items in the region item. Currently you have it like:

    The [r = regions.selectOne, r.name] region contains [r.state]
    

    But, since you have stored the item in r you can just swap them like so:

    [r = regions.selectOne, r.state] is in the [r.name] region
    

    Also, a tip to get the name of the list (to not need the name property in the item) you can do:

    [r = regions.selectOne, r.state] is in the [r.getName] region
    

    See Perchance Snippets - Traversing Hierarchical Lists.

    • AshenthornOP
      link
      English
      17 months ago

      Thanks so much, @[email protected] that’s perfect!

      Any tips on creating my consumable list output with Region+State?

      • VioneTM
        link
        English
        2
        edit-2
        7 months ago

        You can get a consumable list of the states with r.state.consumableList, then you can have it like:

        [r = regions.selectOne, rscl = r.state.consumableList, rscl.selectOne] is in the [r.name] region, as well as [rscl.selectMany(3).join(', ')].
        
        • AshenthornOP
          link
          English
          17 months ago

          That’s very cool… but I kind of need the opposite - I have the consumable list of regions working at the bottom of the page, but I don’t know how to get a random state to show for each (consumable) region:

          https://perchance.org/l87prl9bea#edit

          • VioneTM
            link
            English
            17 months ago

            First, you need to create a new variable, then just like the first one, you only need to change the regions list to the rcl consumable list like so:

            [r = rcl.selectOne, r.state] is in the [r.name] region <br>
            [r = rcl.selectOne, r.state] is in the [r.name] region <br>
            [r = rcl.selectOne, r.state] is in the [r.name] region <br>
            [r = rcl.selectOne, r.state] is in the [r.name] region <br>
            

            You can use other variables other than r.