这确实让我困扰,而且也很重要,因为这是我工作的一部分。 我创建了一个对象,它基本上解析主机名并在该名称的不同部分上放置标签。 听起来很简单,对吧?然而,当我连续创建该对象的多个实例时,所有其他实例都变成空白,除了 _proto 和一些函数之外什么都没有。没有任何数据。
需要注意的是,我使用的是旧版本的 Chrome(我必须使用它,因为工作中的网络是闭路的,不可能在网络之外更新软件)。相同的代码在家里也可以使用。
那我做错了什么? 提前致谢。
var reg = /([A,B,C,D,E])(\d{3})(\d{2})([F,G,H])(\d{2})/i;
var hostParser = function(hostname) {
var parsed = reg.exec(hostname);
if (parsed) {
this.prefix = parsed[1];
this.arena = parsed[2];
this.waitingRoom = parsed[3];
this.adminStatus = parsed[4];
this.ID = parsed[5];
this.hostname = hostname.toUpperCase();
return this;
}
return false;
};
Array.prototype.eliminateDuplicates = function() {
var r = [];
this.forEach(function(n) {
if (r.indexOf(n) < 0)
r.push(n);
});
return r;
};
Array.prototype.trim = function() {
var r = [];
this.forEach(function (n) {
if (!/^\s?$/.test(n))
r.push(n);
});
return r;
};
var list = [
'A40800G01',
'A40800G02',
'A40800G03',
'A40800G04',
'A40800G05',
'A40800G06',
'A40800G07',
'A40800G08',
'A40800G09'
];
list.trim().eliminateDuplicates().forEach(function (item) {
var itemParser = new hostParser(item);
console.log(itemParser);
});
最佳答案
这确实是特定 Chrome 版本的错误。由于无法更新,我故意复制了数组项,结果成功了。
关于javascript - 为什么我在循环中创建的所有其他对象在旧版本的 Chrome 上都显示为空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47964079/