Per questi motivi, il Tribunale federale delle assicurazioni
p r o n u n c i a :
I. Il ricorso di diritto amministrativo è respinto.
II. Non si percepiscono spese giudiziarie.
III. La X._ verserà all'oppponente la somma di
fr. 1000.- a titolo d'indennità di parte per la pro-
cedura federale.
IV. La presente sentenza sarà intimata alle parti, al
Tribunale cantonale delle assicurazioni, Lugano, e
all'Ufficio federale delle assicurazioni sociali.