Javascript 将对象字符串转换为对象的元素

Javascript 将对象字符串转换为对象的元素,javascript,jquery,arrays,object,underscore.js,Javascript,Jquery,Arrays,Object,Underscore.js,我下面有一组对象,如下所示 [0,5] 0: "A123 G 2323232" 1: "F345 G 345667" 2: "T677 G -34343" 3: "G454 G 4343" 4: "" 如您所见,“A123 G 23232”是一个字符串,其中包含制表符分隔的值 我想有一个最终输出如下 [0,4] 0: UserId:A123 Type: G Values: 2323232 1:

我下面有一组对象,如下所示

[0,5]
   0: "A123  G  2323232"
   1: "F345  G  345667"
   2: "T677  G  -34343"
   3: "G454  G  4343"
   4: ""
如您所见,“A123 G 23232”是一个字符串,其中包含制表符分隔的值

我想有一个最终输出如下

[0,4]
   0: 
     UserId:A123
     Type:  G
     Values: 2323232
   1: 
     UserId: F345  
     Type:  G
     Values: 345667
   2: 
     UserId: T677  
     Type:  G
     Values: -34343
   3: 
     UserId: G454  
     Type:  G
     Values: 4343
请注意。第四个元素是空字符串。因此,它不应转换为最终数据


任何人都可以建议如何将其分配到不同的元素

使用
reduce
split
的组合:

var字符串=[
“A123G 23232”,
“F345 G 345667”,
“T677 G-34343”,
“G454 G 4343”,
""
];
var result=strings.reduce(函数(res,str){//用于字符串数组中的每个字符串
var parts=str.split(“\t”);//按制表符拆分字符串
if(parts.length==3){//如果字符串有效(拆分产生3个部分)
res.push({//然后使用我们得到的部分向结果数组添加一个对象
UserID:parts[0],
类型:零件[1],
数值:零件[2]
});
}
返回res;
}, []);

控制台日志(结果)您可以将每个字符串拆分为各自的数据段,然后将这些数据段映射到具有所需属性的对象中。下面是它的外观:

var数据=[“A123 G 2323232”、“F345 G 345667”、“T677 G-34343”、“G454 G 4343”等];
/*ES6语法*/
var objects=data.filter(str=>str!==“”).map(function(str){
var[UserId,Type,Values]=str.split(“”);
返回{UserId,Type,Values};
});
/*ES5语法*/
var objectsES5=data.filter(函数(str){
返回str!==“”;
}).map(函数(str){
var split=str.split(“”);
返回{
UserId:split[0],
类型:拆分[1],
值:拆分[2]
};
});

console.log(对象)
您可以使用javascript
filter()
map()
方法来实现这一点,如下所示

var数组=[“A123 G 23232”,
“F345 G 345667”,
“T677 G-34343”,
“G454 G 4343”,
""];
var result=array.filter(函数(项){
return item.trim();
}).map(功能(项目){
var分割=项目分割(“”);
返回{
UserId:split[0],
类型:拆分[1],
值:拆分[2]
};
});

控制台日志(结果)您可以匹配非空格部分,并将数组解构为所需的属性,然后返回一个对象

var数据=[“A123 G 2323232”、“F345 G 345667”、“T677 G-34343”、“G454 G 4343”和“,”,
结果=数据
.filter(布尔值)
.map(s=>{
var[UserId,Type,Values]=s.match(/[^]+/g);
返回{UserId,Type,Values};
});
控制台日志(结果)

.as-console-wrapper{max-height:100%!important;top:0;}
使用函数分离字符串,然后将结果附加到特定ID。@MaulikBhatt-你能给我看一个例子吗?我能看看这个吗请定义“选项卡”!它们是两个相邻的空格吗?或者是
\t
?@Rihana我硬拷贝了你的字符串,这些字符串中没有制表符
\t
。已修复。
map
无法工作。那么原始数组末尾的空字符串呢。@ibrahimmahrir错过了,谢谢。尼娜的解决方案添加了
.filter(布尔值)
。这可能是最好的方法,但为了不抄袭她的想法,我会过滤空字符串。