javascript - 为什么我在循环中创建的所有其他对象在旧版本的 Chrome 上都显示为空白?

标签 javascript google-chrome

这确实让我困扰,而且也很重要,因为这是我工作的一部分。 我创建了一个对象,它基本上解析主机名并在该名称的不同部分上放置标签。 听起来很简单,对吧?然而,当我连续创建该对象的多个实例时,所有其他实例都变成空白,除了 _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/

相关文章:

javascript - Jest 与 enzyme |在 componentDidMount 中测试 PropTypes 函数

javascript - 带有输入建议的搜索栏(动态占位符)

google-chrome - 最近的 Chrome 更新中缺少屏幕捕获标志

css - 使用 CSS 更改输入的 HTML5 占位符颜色在 Chrome 上不起作用

javascript - iPad Safari 上 HTML5 视频中的事件监听器无法正常工作?

javascript - 将 HTML/JS 变量传递给 Python

json - Safari 和 Chrome 不想 JSON.parse

javascript - 在新的 Chrome PDF 查看器中访问 PDF 嵌入元素

javascript - 如何在不应用代码的情况下在 <pre> 标记内编写代码

html - Chrome 中隐藏文字之谜