분류 javascript

Javascript 30초 Snippet - String : CSVToArray

컨텐츠 정보

  • 조회 286 (작성일 )

본문

CSV (쉼표로 구분 된 값) 문자열을 2D 배열로 변환합니다.


omitFirstRow가 true 인 경우 첫 번째 행 (제목 행)을 제거하려면 Array.prototype.slice() 및 Array.prototype.indexOf('\n')를 사용하십시오. String.prototype.split('\n')을 사용하여 각 행에 대한 문자열을 만든 다음 String.prototype.split (delimiter)를 사용하여 각 행의 값을 구분하십시오. 

기본 분리 문자 인을 사용하려면 두 번째 인수 인 분리 문자를 생략하십시오. 

CSV 문자열의 첫 번째 행 (제목 행)을 포함하려면 세 번째 인수 omitFirstRow를 생략하십시오.


const CSVToArray = (data, delimiter = ',', omitFirstRow = false) =>
  data
    .slice(omitFirstRow ? data.indexOf('\n') + 1 : 0)
    .split('\n')
    .map(v => v.split(delimiter));


ex)

CSVToArray('a,b\nc,d'); // [['a','b'],['c','d']];
CSVToArray('a;b\nc;d', ';'); // [['a','b'],['c','d']];
CSVToArray('col1,col2\na,b\nc,d', ',', true); // [['a','b'],['c','d']];