Javascript 在原点函数之外使用数组

Javascript 在原点函数之外使用数组,javascript,arrays,node.js,function,parameters,Javascript,Arrays,Node.js,Function,Parameters,我将一些值存储在数组中,并使用Javascript将它们打印到HTML页面上。到现在为止,一直都还不错。 现在我想使用数组中的相同数据作为数据图形。但是我无法从创建数组的函数中获取数组。我无法像以前一样从函数内部打印它。 这似乎不是不可能的,但我不明白。 我试图定义一个getter函数,但没有成功。 也许有人能帮我 顺便说一下,我通过Socket.io从node.js服务器接收数据。 在上,我减少了代码,奇怪的是,它在那里工作,但在我下面的原始代码中没有 <script src='

我将一些值存储在数组中,并使用Javascript将它们打印到HTML页面上。到现在为止,一直都还不错。 现在我想使用数组中的相同数据作为数据图形。但是我无法从创建数组的函数中获取数组。我无法像以前一样从函数内部打印它。 这似乎不是不可能的,但我不明白。 我试图定义一个getter函数,但没有成功。 也许有人能帮我

顺便说一下,我通过Socket.io从node.js服务器接收数据。 在上,我减少了代码,奇怪的是,它在那里工作,但在我下面的原始代码中没有

    <script src='//code.jquery.com/jquery-1.7.2.min.js'></script>
    <script src='//localhost:3000/socket.io/socket.io.js'></script>
    <script>

        var socket = io();
        var values_array = new Array();

        socket.on('server2browser', function(data)        // Receive data from server
        {
            fct_values_array(data);   
        });


        function fct_values_array(data)     
        {
             $.each(data, function(i, obj)                // Store received data in array
             {
                 values_array[i] = obj.numbers;      
             });         
             $('#arrayprint_values').text(values_array);  // Print array on HTML - It works.
        }


        $('#printagain').text(values_array);              // Print array again - Doesn´t work.
    </script>

var socket=io();
var values_array=新数组();
socket.on('server2browser',函数(数据)//从服务器接收数据
{
fct_值_数组(数据);
});
函数fct_值_数组(数据)
{
$.each(数据,函数(i,obj)//将接收到的数据存储在数组中
{
值_数组[i]=对象编号;
});         
$('#arrayprint_values').text(values_array);//在HTML上打印数组-它可以工作。
}
$('#再次打印')。文本(值数组);//再次打印阵列-无法工作。
这对我很有用: 替换

$('arrayprint_values')。文本(值_数组)


修改
values\u array
的唯一时间是调用
fct\u values\u array
时。当我们到达
$(“#再次打印”)…
时,它还没有被修改(可能),因为
socket.on
是一种异步方法?您试图实现什么?如果使用
console.log()
打印值,您可能会发现代码没有按照预期的顺序运行。打印到两个单独的html元素不会显示时间。澳航的链接非常有用。是的,可能是复制品。我替换了$('#arrayprint_values').text(values_array);使用setTimeout(function(){$('#arrayprint_values').text(values_array);},Math.random()*1000);永远不要那样做。它只在某些时候起作用——纯粹是运气使然,是随机的。有时数据真的需要几秒钟。更好的解决方案总是受欢迎的。
setTimeout(function() { 
    $('#arrayprint_values').text(values_array); 
}, Math.random() * 1000);