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

问题描述 投票:1回答:1

这真的困扰着我,而且它也很重要,因为它是我工作的一部分。我创建了一个对象,它基本上解析主机名并在该名称的不同部分放置标签。听起来很简单,对吧?但是,当我连续创建该对象的多个实例时,每个其他实例都变成空白,只有_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);
});
javascript google-chrome
1个回答
0
投票

这确实是特定Chrome版本的错误。无法更新,我故意复制数组项目并且它有效。

© www.soinside.com 2019 - 2024. All rights reserved.