我传入一组错误消息以进行解析。一个示例输入是:
"An item with this x Id already exists.
An item with this y id already exists.
An item with this barcode already exists.
"
也就是说,字符串实际上是上面的每一行,由 \n 分隔,最后是 \n。
function( msg )
{
alert( "\"" + msg + "\"" );
var aLines = msg.split( /\r?\n+/ );
for ( var i in aLines )
{
if ( !aLines[i] ) { alert( "Error!" ); continue; }
alert( i + ": \"" + aLines[i] + "\"" );
}
}
我把它分成几行,然后遍历这些行。在索引 3 处没有行,第一个条件触发器。那不应该是空行吗?例如“”
然后循环实际上又增加了一个元素到 4,并显示了一个函数的内容。
那就是我得到 - 五个警报:
0: "An item with this x Id already exists."
1: "An item with this y id already exists."
2: "An item with this barcode already exists."
Error!
最后一个最离奇:
hasObject: "function(o) {
var l = this.length + 1;
... more lines ...
}
我不明白这里发生了什么。为什么它要遍历另一个元素?为什么最后一个元素是函数?offset 3 不应该是一个空字符串吗?那就是我不应该警告“错误!” 这里。