mi archivo csv es
1234567,AB,Client,S12345J,111 ABCD ABCEDE ADDRESS 1234567,BC,Client,S12345J,111 ABCD ABCEDE ADDRESS 1234567,CD,Client,S12345J,11 ABCD ABCEDE ADDRESS 1234567,DF,Client,S12345J,856 ABCD ABCEDE ADDRESSTengo un problema al usar split en un CSV.... el comando regex que uso es /(. ?,. ?),.*/
if (typeof (FileReader) != "undefined") { var Allvalues = new FileReader(); Allvalues.readAsText($("#fileUpload")[0].files[0]); Allvalues.onload = (f) => { this.splitted = f.target.result.split(/(.*?,.*?),.*/); }esperaba una matriz
["1234567,AB","1234567,BC"]me gusta
0[] = "1234567,AB" 1[] = "1234567,BC"pero estoy recibiendo
["", "1234567,AB", " ","1234567,BC",...]me gusta
0[] = "" 1[] = "1234567,AB" 2[] = "" 4[] = "1234567,BC"¿Alguien puede ayudar a corregirlo? Gracias de antemano.
Si nunca habrá una coma en los datos como "111, ABCD ABCEDE, ADDRESS"
luego puede dividir y destruir en coma y hacer una reducción para obtener valores únicos
const csv = `1234567,AB,Client,S12345J,111 ABCD ABCEDE ADDRESS 1234567,BC,Client,S12345J,111 ABCD ABCEDE ADDRESS 1234567,AB,Client,S12345J,11 ABCD ABCEDE ADDRESS 1234567,DF,Client,S12345J,856 ABCD ABCEDE ADDRESS` const res = csv.split(/\n/).reduce((acc,line) => { const [a,b,c,d,e] = line.split(/,/) if (!acc.find(arr => arr[0] === a && arr[1] === b)) acc.push([a, b]) return acc },[]) console.log(res)JS más antiguo
var csv = "1234567,AB,Client,S12345J,111 ABCD ABCEDE ADDRESS\n1234567,BC,Client,S12345J,111 ABCD ABCEDE ADDRESS\n1234567,AB,Client,S12345J,11 ABCD ABCEDE ADDRESS\n1234567,DF,Client,S12345J,856 ABCD ABCEDE ADDRESS"; var lines = csv.split(/\n/) var res = [] for (var i=0;i<lines.length;i++) { var arr = lines[i].split(/,/); var found = false for (var j=0;j<res.length; j++) { if (res[j][0] === arr[0] && res[j][1] === arr[1]) { found = true; break; } } if (!found) res.push([arr[0], arr[1]]) } console.log(res)