l oop через массив obj javascript - PullRequest
0 голосов
/ 27 мая 2020

У меня есть массив таких объектов, как (ниже вывода chrome консоли ..)

[]
0: SRB {codiceSito: "I019GR", isFintoCamino: false, isFintoAlbero: false, regione: "TOSCANA"}
1: SRB {codiceSito: "I374NA", isFintoCamino: true, isFintoAlbero: false, regione: "Campania"}
2: SRB {codiceSito: "I288NA", isFintoCamino: false, isFintoAlbero: false, regione: "Campania"}
3: SRB {codiceSito: "I403NA", isFintoCamino: true, isFintoAlbero: false, regione: "CAMPANIA"}
...

все эти объекты создаются с помощью этого конструктора

class SRB {
    constructor(codiceSito, isFintoCamino, isFintoAlbero, regione) {
        this.codiceSito = codiceSito;
        this.isFintoCamino = isFintoCamino
        this.isFintoAlbero = isFintoAlbero
        this.regione = regione
        // this.comune = comune
        // this.versioneModello = versMod
    }
}

и после создавая каждый из них, я превращаю sh его в пустой массив list_SRB = []

Теперь, если я наберу chrome консоль, например, list_SRB[2], я получу ожидаемый результат:

SRB {codiceSito: "I288NA", isFintoCamino: false, isFintoAlbero: false, regione: "Campania"}

вместо этого, если я l oop через него с a for l oop, я получаю undefined ...: /

Итак, я хотел бы знать как пройти через этот массив oop и получить каждое значение свойства, чтобы «распечатать» их на HTML таблице.

каждая маленькая подсказка более чем приветствуется: D

Извините, я не опубликовал весь код раньше, проверьте его ниже:

function handleFileSelect(evt) {

    // SRB constructor
    class SRB {
        constructor(codiceSito, isFintoCamino, isFintoAlbero, regione) {
            this.codiceSito = codiceSito;
            this.isFintoCamino = isFintoCamino
            this.isFintoAlbero = isFintoAlbero
            this.regione = regione
            // this.comune = comune
            // this.versioneModello = versMod
        }
    }

    var files = evt.target.files

    // loop through all uploaded files (TXT-like files)
    for (var i = 0; i < files.length; i++) {
        var file = files[i]
        var fileName = file.name

        if (fileName.endsWith(".ifc")) {

            list_fileNames.push(file.name)
            list_SRB_count++

            // read the IFC as txt file
            var reader = new FileReader()
            reader.onload = function (e) {
                var contents = e.target.result

                // create regex searches for all data
                var regEx_codiceSito = /(codice sito',\$,IFCTEXT\('([a-zA-Z\d]{6}))/g
                var codiceSito = regEx_codiceSito.exec(contents)
                if (codiceSito) {
                    codiceSito = codiceSito[2]
                } else {
                    codiceSito = "dato non disponibile"
                } 

                var regEx_fintoCamino = /resina/gi
                var isFintoCamino = regEx_fintoCamino.exec(contents)
                if (isFintoCamino) {
                    isFintoCamino = true
                    list_SRB_fintoCamino.push(codiceSito)
                } else {
                    isFintoCamino = false
                }

                var regEx_fintoAlbero = /((IFCTEXT\('vedetaz)|(IFCTEXT\('vegetaz))/gi
                var isFintoAlbero = regEx_fintoAlbero.exec(contents)
                if (isFintoAlbero) {
                    isFintoAlbero = true
                    list_SRB_fintoAlbero.push(codiceSito)
                } else {
                    isFintoAlbero = false
                }

                var regEx_regione = /(regione',\$,IFCTEXT\('([a-zA-Z]{2,25}))/g
                var regione = regEx_regione.exec(contents)
                if (regione) {
                    regione = regione[2]
                } else {
                    regione = "dato non disponibile"
                }

                // create the SRB obj
                var thisSRB = new SRB(codiceSito, isFintoCamino, isFintoAlbero, regione)

                // push the obj to the SRB list
                list_SRB.push(thisSRB)

                // now loop through the SRB list and log the results
                for (var n = 0; n < list_SRB_count; n++) {
                    console.log(SRB) // logs correctly the entire list 
                    console.log(SRB[n]) // logs undefined
                }

            }
            reader.readAsText(file)

            countFile_Accepted++

        } else {
            countFile_NotAccepted++
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...