Actualmente estoy recibiendo una matriz como esta:
['Alica Brereton,Marijuana,9.18,50', 'William Kotai,ecstasy,19.12,20', 'Joel Forro,heroin,91.16,5', 'David Ernest,Methamphetamine,108.78,5', 'David Ernest,cocaine,80,2', 'Joel Forro,ecstasy,19.12,10', 'Gabriella Hyde,Marijuana,9.18,10', 'Gabriella Hyde,Methamphetamine,108.78,8', 'Marijuana,9.18,10' ]Quiero cortar los nombres al comienzo de cada cadena y almacenarlos en una nueva variable, por lo que tendría algo como esto:
['Alica Brereton', 'William Kotai', 'Joel Forro', 'David Ernest', 'Joel Forro', 'Gabriella Hyde' ]estoy trabajando en un archivo de texto aquí está mi actual
code: const fs = require("fs"); const data = fs.readFileSync("data.txt").toString(); const lines = data.split("\n"); let customerKeys = lines[0].replace("customer", "Total Price"); lines.shift(); console.log(customerKeys); console.log(lines); let array = lines.filter((str) => { return str !== ""; }); let arrNoSpaces = array; console.log(arrNoSpaces); arrNoSpaces[6].replace("Gabriella Hyde,", ""); var GabriellaExtra = arrNoSpaces[6].replace("Gabriella Hyde,", ""); console.log(GabriellaExtra); arrNoSpaces.push(GabriellaExtra); console.log(arrNoSpaces); arrNoSpaces.splice(-3, 1); console.log(arrNoSpaces);Una expresión regular puede hacer coincidir letras y espacios (no comas) de cada cadena, asignándose a una nueva matriz.
const arr = ['Alica Brereton,Marijuana,9.18,50', 'William Kotai,ecstasy,19.12,20', 'Joel Forro,heroin,91.16,5', 'David Ernest,Methamphetamine,108.78,5', 'David Ernest,cocaine,80,2', 'Joel Forro,ecstasy,19.12,10', 'Gabriella Hyde,Marijuana,9.18,10', 'Gabriella Hyde,Methamphetamine,108.78,8', 'Marijuana,9.18,10' ]; const result = arr .map(line => line.match(/\w+ \w+/)?.[0]) // extract matches .filter((item, i, arr) => item && arr[i - 1] !== item) // filter out failed matches and dupes console.log(result);