Se o mesmo retorna algo como:
10.0.0.1 (10.0.0.1) at 24:fd:d:15:d8:91 on en0 ifscope [ethernet]
10.0.0.104 (10.0.0.104) at be:f3:5:d4:13:c0 on en0 ifscope [ethernet]
E você precisa somente do IP, o certo é verificar se cada linha retornada é uma string. Se sim, poderia fazer:
const unsanitizedIps[] = shell.exec('arp -a')
const sanitizedIps = []
for(let i = 0; i<ips.length;i++) {
sanitizedIps.push(unsanitizedIps[i].split('(')[0].trim())
// linha: 10.0.0.1 (10.0.0.1) at 25:ad:d:12:d2:11 on en0 ifscope [ethernet]
// saida: 10.0.0.1
// Obs.: o split pode ser feito no espaço em branco também. ".split(' ')"
}
Edit: Se entendi certo, é isso ai.