2017-03-12 54 views
2

我有一个函数,涉及声明和填充名为ArrayRoute的数组。我需要稍后在for循环中引用此数组。如何将此数组设置为全局,以便可以在函数之外访问它?我如何在打字稿中声明一个数组为public?

感谢

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); 

回答

1

你不能。
如果你在函数内部创建数组,那么它只能从函数体内访问。

您可以在函数外声明它:

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); 

你可以把它作为一个参数传递给函数:

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

或者你可以从函数返回数组结果:

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(...); 
+0

谢谢你,先生。 – Dansmith12