3 deleted 97 characters in body

# J, 4440 bytes

((]*[{~i.@#@[-.i]*<^:3@i.{[)>./)&.(10&#.inv)^:(9&<)^:_


Try it online!

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
(     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
(               )>./)                              NB. stuff is a hook, with max digit >./  on the right
(]*[{~i.@#@[-.i]*<^:3@i.{[)                                  NB. so that in this phrase, ] means "max" and [ means "all digits"
]                                             NB. the max digit...
*                                            NB. times...
[    <^:3@                                       NB. all thetriple digitsbox...
{~    i.                                     NB. from those digits, pick the following indexes only...
i.@#@[   first index of the max in the list of all digits
{           NB. all the possible indexes (0 through the length of all digits, [)
-NB.                        "from" -- which because of the triple box means NB."take removeall fromindexes themexcept..."
[   i.                                NB. the first index of the maxfrom inall the listdigits of allthe digitsnumber


Try it online!

# J, 44 bytes

((]*[{~i.@#@[-.i.)>./)&.(10&#.inv)^:(9&<)^:_

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
(     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
(               )>./)                          NB. stuff is a hook, with max digit >./  on the right
(]*[{~i.@#@[-.i.)                              NB. so that in this phrase, ] means "max" and [ means "all digits"
]                                             NB. the max digit...
*                                            NB. times...
[                                           NB. all the digits...
{~                                         NB. from those digits, pick the following indexes only...
i.@#@[                                   NB. all the possible indexes (0 through the length of all digits, [)
-.                                 NB. remove from them...
i.                               NB. the first index of the max in the list of all digits


Try it online!

# J, 40 bytes

((]*<^:3@i.{[)>./)&.(10&#.inv)^:(9&<)^:_


Try it online!

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
(     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
(           )>./)                              NB. stuff is a hook, with max digit >./  on the right
(]*<^:3@i.{[)                                  NB. so that in this phrase, ] means "max" and [ means "all digits"
]                                             NB. the max digit...
*                                            NB. times...
<^:3@                                       NB. triple box...
i.                                     NB. the first index of the max in the list of all digits
{                                    NB. "from" -- which because of the triple box means "take all indexes except..."
[                                   NB. from all the digits of the number

2 added 1071 characters in body

explanation coming...

## explanation

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
(     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
(               )>./)                          NB. stuff is a hook, with max digit >./  on the right
(]*[{~i.@#@[-.i.)                              NB. so that in this phrase, ] means "max" and [ means "all digits"
]                                             NB. the max digit...
*                                            NB. times...
[                                           NB. all the digits...
{~                                         NB. from those digits, pick the following indexes only...
i.@#@[                                   NB. all the possible indexes (0 through the length of all digits, [)
-.                                 NB. remove from them...
i.                               NB. the first index of the max in the list of all digits


explanation coming...

## explanation

(      iterate                   )^:(9&<)^:_    NB. keep iterating while the number is > 9
(     stuff         )&.(10&#.inv)              NB. convert to digits, do stuff, convert back to number
(               )>./)                          NB. stuff is a hook, with max digit >./  on the right
(]*[{~i.@#@[-.i.)                              NB. so that in this phrase, ] means "max" and [ means "all digits"
]                                             NB. the max digit...
*                                            NB. times...
[                                           NB. all the digits...
{~                                         NB. from those digits, pick the following indexes only...
i.@#@[                                   NB. all the possible indexes (0 through the length of all digits, [)
-.                                 NB. remove from them...
i.                               NB. the first index of the max in the list of all digits

1

# J, 44 bytes

((]*[{~i.@#@[-.i.)>./)&.(10&#.inv)^:(9&<)^:_


explanation coming...

Try it online!