Given a list of strings, find all elements which are still in the list when any character is deleted
J, 11 bytes

*/@e.~1&lt;\.]


Try it online!

J's "outfix" adverb \. does exactly what we need here.

Take the dictionary as the left arg (implicitly, via the overall dyadic hook), and the string to test as the right arg.


1&lt;\.] Returns the box of every length 1 outfix of our right arg, that is, every copy with exactly 1 char deleted.
e.~ Asks if each of those is an element of the dictionary given  as the left arg. Returns a list of boolean zeros and ones.
*/@ Multiplies them all together, that is, are they all one?