将csv数据转换成数组格式

新手上路,请多包涵

我正在尝试使用 jquery 形成一个 wordCloud。我有一个要读取的 csv 文件,并使用该数据形成一个 wordCloud。我的 csv 文件中有列作为

text weight
Lorem 15
Ipsum 9

依此类推 但输入数据需要采用以下格式

var word_array = [
          {text: "Lorem", weight: 15},
          {text: "Ipsum", weight: 9},
          {text: "Dolor", weight: 6},
          {text: "Sit", weight: 7}
          ];

我应该如何将我的csv数据转换成上述格式才能形成词云。如果可能请附上代码。我正在我的 html 页面中执行所有这些操作。谢谢。

原文由 vatsa 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 655
1 个回答

这是 ES6 中可能的解决方案:

 const csv2json = (str, delimiter = ',') => {
  const titles = str.slice(0, str.indexOf('\n')).split(delimiter);
  const rows = str.slice(str.indexOf('\n') + 1).split('\n');
  return rows.map(row => {
    const values = row.split(delimiter);
    return titles.reduce((object, curr, i) => (object[curr] = values[i], object), {})
  });
};

let csv = "text weight\nLorem 15\nIpsum 9";
let word_array = csv2json(csv,' ');
console.log(word_array)

原文由 Raos 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题