Hur deklarerar jag en array som public i TypeScript?


Jag har en funktion som involverar att deklarera och fylla en array kallad ArrayRoute. Jag behöver referera till denna array senare i en for-loop. Hur gör jag denna array global så att jag kan komma åt den utanför funktionen?

Tack

function route(permutation, origins) {
    var myroute = origins[0];
    var ArrayRoute = [];
    ArrayRoute.push(origins[0]);
    console.log('ArrayRoute= ' + ArrayRoute);
    for (var i = 0; i < permutation.length; i++){
        myr += '\n' + myd[permutation[i] - 1];
        ArrayRoute.push(myd[permutation[i] - 1]);
    }
    return myroute;
}

for (i = 0; i < ArrayRoute.length - 1; i++) {
    console.log(ArrayRoute[i] + '->' + ArrayRoute[i + 1]);
}

console.log('ArrayRouteeee= ' + ArrayRoute);

Svar #1

Du kan inte.
Om du skapar arrayen inne i funktionen är den endast åtkomlig från funktionen.

Du kan deklarera det utanför funktionen:

let ArrayRoute = [];
function route(permutation, origins) {
    var myroute = origins[0];
    ArrayRoute.push(origins[0]);
    console.log('ArrayRoute= ' + ArrayRoute);
    for (var i = 0; i < permutation.length; i++){
        myr += '\n' + myd[permutation[i] - 1];
        ArrayRoute.push(myd[permutation[i] - 1]);
    }
    return myroute;
}

for (i = 0; i < ArrayRoute.length - 1; i++) {
    console.log(ArrayRoute[i] + '->' + ArrayRoute[i + 1]);
}

console.log('ArrayRouteeee= ' + ArrayRoute);

Du kan skicka det som en parameter till funktionen:

function route(permutation, origins, ArrayRoute) {
    ...
}

Eller så kan du returnera arrayen som ett resultat från funktionen:

function route(permutation, origins) {
    var myroute = origins[0];
    var ArrayRoute = [];
    ArrayRoute.push(origins[0]);
    console.log('ArrayRoute= ' + ArrayRoute);
    for (var i = 0; i < permutation.length; i++){
        myr += '\n' + myd[permutation[i] - 1];
        ArrayRoute.push(myd[permutation[i] - 1]);
    }
    return { myroute, ArrayRoute };
}

let { myroute, ArrayRoute } = route(...);