json to tsv (csv)

마가·2022년 7월 28일
0

trial-error

목록 보기
1/19
export function jsonToTSV(jsonDatas:any[]):string {
  if (jsonDatas.length === 0) {
    throw new Error('data not exist')
  }

  const keys = Object.keys(jsonDatas[0])
  const titleRow = keys.reduce((acc,title)=>`${acc}\t${title}`,'').slice(1)
  const tsvString = jsonDatas.reduce((rowAcc,row)=>{
    const rowString = keys.reduce((valueAcc,key)=>`${valueAcc}\t${row[key]}`.slice(1),'')
    return `${rowAcc}\n${rowString}`
  },titleRow)

  return tsvString
}

json array를 받아서 tsv로 변환하는데 아무리 해도
맨 앞의 열의 8자리가 짤려서 10326055229_6398477186가 229_6398477186로 나온다.
원인은... rowString에서 slice를 잘못 지정했다!!!!
그것도 모르고 한참 헤멨네
경력직 맞나 몰라.

제대로 된 코드

export function jsonToTSV(jsonDatas:any[]):string {
  if (jsonDatas.length === 0) {
    throw new Error('data not exist')
  }

  const keys = Object.keys(jsonDatas[0])
  const titleRow = keys.reduce((acc,title)=>`${acc}\t${title}`,'').slice(1)
  const tsvString = jsonDatas.reduce((rowAcc,row)=>{
    const rowString = keys.reduce((valueAcc,key)=>`${valueAcc}\t${row[key]}`,'').slice(1)
    return `${rowAcc}\n${rowString}`
  },titleRow)

  return tsvString
}
profile
마음 가는 길은 죽 곧은 길

0개의 댓글