У меня есть массив таких объектов, как (ниже вывода 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++
}
}
}