Existe-t-il un moyen de parcourir chaque tableau Oracle endpnt et d'analyser les chaînes en nombres tout en gardant les tableaux Oracle endpnt dans l'ordre.
Code
[
Oracle { name: 'oracle1', endpnt: [ '1', '3' ] },
Oracle { name: 'oracle2', endpnt: [ '1', '2' ] },
Oracle { name: 'oracle3', endpnt: [ '1', '3' ] },
Oracle { name: 'oracle4', endpnt: [] }
]
Résultat
var oracleTitle= ['oracle1','oracle2','oracle3','oracle4']
var oracleEndpnt = [['1','3'],['1','2'],['1','3'],[]]
function Oracle(name, endpnt) {
this.name = name;
this.endpnt = endpnt
}
var oracles = []
for(var i=0;i<oracleTitle.length;i++) {
oracles.push(new Oracle(oracleTitle[i],oracleEndpnt[i]))
}
console.log(oracles)
3 Réponses :
Si je comprends bien, cela devrait faire:
var oracles = [
{ name: 'oracle1', endpnt: [ '1', '3' ] },
{ name: 'oracle2', endpnt: [ '1', '2' ] },
{ name: 'oracle3', endpnt: [ '1', '3' ] },
{ name: 'oracle4', endpnt: [] }
]
var r = oracles.map(x => {
x.endpnt = x.endpnt.map(z => Number(z))
return x
})
console.log(r)Votre code a également pu résoudre mon problème merci. @maioman
Si vous ne voulez pas changer tout le code, vous pouvez exécuter une carte pour le deuxième tableau
var oracleTitle= ['oracle1','oracle2','oracle3','oracle4']
var oracleEndpnt = [['1','3'],['1','2'],['1','3'],[]]
function Oracle(name, endpnt) {
this.name = name;
this.endpnt = endpnt
}
var oracles = []
for(var i=0;i<oracleTitle.length;i++) {
// Change this part
oracles.push(new Oracle(oracleTitle[i],oracleEndpnt[i].map(num => parseInt(num))));
}
console.log(oracles)
La destruction / la réagrégation du tableau que vous utilisez comme deuxième paramètre du constructeur oracle est inutile.
Merci beaucoup, l'exemple que j'ai fourni était des données simulées, mais j'ai utilisé votre solution avec le .map () pour mon problème principal à plus grande échelle et cela a parfaitement fonctionné. Si je ne me trompe pas, nous utilisons la fonction map () en lui passant le paramètre num qui ciblerait chaque élément du tableau, puis analysons chaque élément du tableau et créons un nouveau tableau basé sur les nouveaux résultats ?. Je ne veux tout simplement pas le brancher et ne pas comprendre, corrigez-moi si je me trompe. @VictorShinobiGakiya
@KimaniKelly C'est correct, on mappe ici le tableau qui correspond au titre analysé, dans ce cas puisqu'il s'agit de l'index du tableau est le même que l'index du titre [i], vous n'aurez pas de problème . Si vous deviez avoir un nombre différent de titres / tableaux, cette méthode pourrait vous causer des problèmes
J'ai appliqué cette méthode dans une boucle for qui itérerait sur 90 tableaux pour analyser plusieurs chaînes hexadécimales 32 octets en une chaîne lisible et le résultat a parfaitement fonctionné. @VictorShinobiGakiya
var oracleTitle= ['oracle1','oracle2','oracle3','oracle4']
var oracleEndpnt = [['1','3'],['1','2'],['1','3'],[]]
function Oracle(name, endpnt) { this.name = name; this.endpnt = endpnt }
var oracles = oracleTitle.map((s, i) => new Oracle(s, oracleEndpnt[i].map(Number)))
console.log( JSON.stringify(oracles) )
Est-ce que cela répond à votre question? Comment convertir une chaîne en entier en JavaScript?
Changez simplement
Oraclepour faire la carte:this.endpnt = endpnt.map(i => +i);J'ai pris en compte les réponses de chacun pour différentes variantes pour résoudre ce problème merci.