期望返回的数据

    1. // 期望返回这样的数据结构
    2. [
    3. {
    4. name: 'Bob',
    5. age: '30',
    6. parent: [
    7. {
    8. name: 'David',
    9. age: 60
    10. }
    11. ],
    12. children: [
    13. {
    14. name: 'Anna',
    15. age: 10,
    16. parent:[
    17. {
    18. name: 'Bob',
    19. age: '30',
    20. }
    21. ]
    22. }
    23. ]
    24. }
    25. ]

    简单版本

    1. const csv = `
    2. name,age,parent
    3. Bob,30,David
    4. David,60,
    5. Anna,10,Bob
    6. `;
    7. function strTransformObj(str) {
    8. const firstArr = str.split(/\n|\r/g);
    9. firstArr.pop();
    10. firstArr.shift();
    11. const secondArr = firstArr.map((strItem) => {
    12. return strItem.trim().split(",");
    13. })
    14. return [{
    15. name: secondArr[1][0],
    16. age: secondArr[1][1],
    17. parent: [{
    18. name: secondArr[2][0],
    19. age: secondArr[2][1],
    20. }],
    21. children: [{
    22. name: secondArr[3][0],
    23. age: secondArr[3][1],
    24. parent: [{
    25. name: secondArr[1][0],
    26. age: secondArr[1][1],
    27. }]
    28. }]
    29. }]
    30. console.log(secondArr);
    31. }
    32. console.log(strTransformObj(csv));

    TS高阶版本(未开发)