JavaScript将文件内容拆分为键值对

时间:2017-12-01 16:03:15

标签: javascript typescript

我有以下的UploadDocument事件,该事件有fileReader.result,它将以下消息记录到控制台

在控制台中输出

A,B
aa,dsf
adfa,dfsd
fdsafds,sdf

 uploadDocument(file) {
    let fileReader = new FileReader();
     fileReader.onload =(e) => {
      console.log(fileReader.result);
    }  
    fileReader.readAsText(this.file);

如何使用javascript或Typescript将控制台中的上述内容(A,B ...)拆分为键值对(如hashmap或Arraylist)?

我试过拆分它   var lines = fileReader.result.split(/ [\ r \ n] + / g);       的console.log(系);

现在我该如何从中创建一个hashmap?

2 个答案:

答案 0 :(得分:1)

reduce()数组方法可用于在每个元素上构建对象,因此我们只需将文件拆分为多行,然后将行数组缩减为对象。

[{"client_name":"majed10","addr":"Uttara"},{"client_name":"majed10","addr":"Uttara"}]

Sample fiddle

答案 1 :(得分:0)

一种方法是使用带有初始值的reduce - 在这种情况下是一个新对象 - 并填充其键和值,并在每次迭代时将逗号中文件中的每一行拆分为功能。

const input = 'A,B\n\
aa,dsf\n\
adfa,dfsd\n\
fdsafds,sdf'

const obj = input.split(/\n/g).reduce((p, c) => {
  const s = c.split(',');
  p[s[0]] = s[1];
  return p;
}, {});

console.log(obj)