我有以下的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?
答案 0 :(得分:1)
reduce()
数组方法可用于在每个元素上构建对象,因此我们只需将文件拆分为多行,然后将行数组缩减为对象。
[{"client_name":"majed10","addr":"Uttara"},{"client_name":"majed10","addr":"Uttara"}]
答案 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)