将对象字符串转换为对象元素
Transform string of objects into elements of object
我有下面的对象字符串,如下所示。
[0,5]
0: "A123 G 2323232"
1: "F345 G 345667"
2: "T677 G -34343"
3: "G454 G 4343"
4: ""
如您所见,"A123 G 2323232" 是一个字符串,其中包含制表符分隔值。
我希望最终输出如下。
[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
请注意。第 4 个元素是空字符串。所以它不应该转换为最终数据。
任何人都可以建议如何将其分配给不同的元素。
使用 reduce
和 split
的组合:
var strings = [
"A123 G 2323232",
"F345 G 345667",
"T677 G -34343",
"G454 G 4343",
""
];
var result = strings.reduce(function(res, str) { // for each string in strings arrays
var parts = str.split("\t"); // split the string by tabs
if(parts.length === 3) { // if the string is valid (the splitting yielded 3 parts)
res.push({ // then add an object to the result array using the parts we got
UserID: parts[0],
Type: parts[1],
Values: parts[2]
});
}
return res;
}, []);
console.log(result);
您可以将每个字符串拆分成单独的数据片段,然后将这些片段映射到具有所需属性的对象中。这是它的样子:
var data = ["A123 G 2323232","F345 G 345667","T677 G -34343","G454 G 4343", ""];
/* ES6 Syntax */
var objects = data.filter(str => str !== "").map(function (str) {
var [UserId, Type, Values] = str.split(" ");
return { UserId, Type, Values };
});
/* ES5 Syntax */
var objectsES5 = data.filter(function (str) {
return str !== "";
}).map(function (str) {
var split = str.split(" ");
return {
UserId: split[0],
Type: split[1],
Values: split[2]
};
});
console.log(objects);
您可以使用 javascript filter()
和 map()
方法,如下所示。
var array = ["A123 G 2323232",
"F345 G 345667",
"T677 G -34343",
"G454 G 4343",
""];
var result = array.filter(function(item) {
return item.trim();
}).map(function(item) {
var split = item.split(' ');
return {
UserId: split[0],
Type: split[1],
Values: split[2]
};
});
console.log(result);
您可以匹配非 space 部分并将数组解构为所需的属性和 return 一个对象。
var data = ["A123 G 2323232", "F345 G 345667", "T677 G -34343", "G454 G 4343", ""],
result = data
.filter(Boolean)
.map(s => {
var [UserId, Type, Values] = s.match(/[^ ]+/g);
return { UserId, Type, Values };
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
我有下面的对象字符串,如下所示。
[0,5]
0: "A123 G 2323232"
1: "F345 G 345667"
2: "T677 G -34343"
3: "G454 G 4343"
4: ""
如您所见,"A123 G 2323232" 是一个字符串,其中包含制表符分隔值。
我希望最终输出如下。
[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
请注意。第 4 个元素是空字符串。所以它不应该转换为最终数据。
任何人都可以建议如何将其分配给不同的元素。
使用 reduce
和 split
的组合:
var strings = [
"A123 G 2323232",
"F345 G 345667",
"T677 G -34343",
"G454 G 4343",
""
];
var result = strings.reduce(function(res, str) { // for each string in strings arrays
var parts = str.split("\t"); // split the string by tabs
if(parts.length === 3) { // if the string is valid (the splitting yielded 3 parts)
res.push({ // then add an object to the result array using the parts we got
UserID: parts[0],
Type: parts[1],
Values: parts[2]
});
}
return res;
}, []);
console.log(result);
您可以将每个字符串拆分成单独的数据片段,然后将这些片段映射到具有所需属性的对象中。这是它的样子:
var data = ["A123 G 2323232","F345 G 345667","T677 G -34343","G454 G 4343", ""];
/* ES6 Syntax */
var objects = data.filter(str => str !== "").map(function (str) {
var [UserId, Type, Values] = str.split(" ");
return { UserId, Type, Values };
});
/* ES5 Syntax */
var objectsES5 = data.filter(function (str) {
return str !== "";
}).map(function (str) {
var split = str.split(" ");
return {
UserId: split[0],
Type: split[1],
Values: split[2]
};
});
console.log(objects);
您可以使用 javascript filter()
和 map()
方法,如下所示。
var array = ["A123 G 2323232",
"F345 G 345667",
"T677 G -34343",
"G454 G 4343",
""];
var result = array.filter(function(item) {
return item.trim();
}).map(function(item) {
var split = item.split(' ');
return {
UserId: split[0],
Type: split[1],
Values: split[2]
};
});
console.log(result);
您可以匹配非 space 部分并将数组解构为所需的属性和 return 一个对象。
var data = ["A123 G 2323232", "F345 G 345667", "T677 G -34343", "G454 G 4343", ""],
result = data
.filter(Boolean)
.map(s => {
var [UserId, Type, Values] = s.match(/[^ ]+/g);
return { UserId, Type, Values };
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }