【发布时间】:2019-12-23 03:30:45
【问题描述】:
以下是我在使用 JavaScript 创建对象数组时遇到的问题。我收到错误消息,其中添加了如下新行,我需要在其中拆分消息并收集行号。如果是重复的错误消息,行号应该用逗号分隔。
我通过一些丑陋的方式实现了,当我尝试连接行号时,它正在添加“未定义”字符串。
另外,我可能需要针对大数据优化的解决方案。大多数时候我可能会收到介于 3000 到 7000 之间的错误消息。我使用的是 Angular 6 版本。
下面提到了我想要的输出。
var errorMsg = `No address details found for record at row 3.
No address details found for record at row 4.
Invalid Street Number at row 5.
Invalid Zip at row 6.
Invalid Zip at row 7.
Invalid Zip at row 11.`
var errorDisp = errorMsg.split(/^(.*)(\d.)/gm);
errorDisp = errorDisp.filter(function(entry) {
return /\S/.test(entry);
});
var object = {};
var rows = [];
errorDisp.forEach(function(a, i, aa) {
if (i & 1) {
object[aa[i - 1]] += "," + a;
}
});
console.log(object);
输出:
{
"No address details found for record at row ": "undefined,3.,4.",
"Invalid Street Number at row ": "undefined,5.",
"Invalid Zip at row": "undefined,6.,7.,11."
}
需要的输出:
{
"No address details found for record at row ": "3,4",
"Invalid Street Number at row ": "5",
"Invalid Zip at row": "6,7,11"
}
【问题讨论】:
-
相同的错误信息是否总是彼此相邻,或者任何一行都有错误信息?
-
是的,总是出现相同的错误消息,但行号不同。
标签: javascript json regex typescript angular6