Javascript Android 5.1未定义函数外部的数组元素

Javascript Android 5.1未定义函数外部的数组元素,javascript,android,arrays,cordova,associative-array,Javascript,Android,Arrays,Cordova,Associative Array,我有一个带有一些JavaScript代码的cordova应用程序: function test(){ a = new Array(); a['var_a']=5; a['var_b']=10; return a; } $(document).ready(function(){ return_arr = test(); console.log(return_arr['var_a']); }); 我的预期结果是5。在Intel XDK Emulator

我有一个带有一些JavaScript代码的cordova应用程序:

function test(){
   a = new Array();
   a['var_a']=5;
   a['var_b']=10;

   return a;
}

$(document).ready(function(){
    return_arr = test();

    console.log(return_arr['var_a']);
});
我的预期结果是
5
。在Intel XDK Emulator和黑莓操作系统10中,我还获得了
5
。然而,使用安卓5.1的Cubot手机,我收到
未定义的

什么会导致这种不同的行为?
我的解决方案是使返回成为全局的,但我仍然对为什么我的代码应该是错误的感兴趣

数组是索引的,而您正在查找属性。您最好使用对象,而不是数组

function test(){
   a = {};  // declare an empty object
   a['var_a']=5;
   a['var_b']=10;

   return a;
}

$(document).ready(function(){
    return_arr = test();

    console.log(return_arr['var_a']);
});

数组是索引的,而您正在查找属性。您最好使用对象,而不是数组

function test(){
   a = {};  // declare an empty object
   a['var_a']=5;
   a['var_b']=10;

   return a;
}

$(document).ready(function(){
    return_arr = test();

    console.log(return_arr['var_a']);
});

是的,我知道一件物品可能是更好的。但是,关联阵列在某些环境下工作,但在Cubot手机上不工作。为什么?我的问题更多的是为什么它在任何环境下都能工作,而不是为什么它在某些环境下不能工作。这根本不应该起作用。我的回答是作为一个替代你的建议,使阵列全球张贴。除了作为一个“让它工作”的预兆,它也不应该改变任何事情!这段代码在IE和Chrome中都返回了一个空数组,所以我就不再继续这样做了。啊,你检查了几个浏览器,这是一个浏览器问题?谢谢!我会试试的。没问题-很乐意帮忙。祝你好运:)是的,我知道一件物品可能是更好的。但是,关联阵列在某些环境下工作,但在Cubot手机上不工作。为什么?我的问题更多的是为什么它在任何环境下都能工作,而不是为什么它在某些环境下不能工作。这根本不应该起作用。我的回答是作为一个替代你的建议,使阵列全球张贴。除了作为一个“让它工作”的预兆,它也不应该改变任何事情!这段代码在IE和Chrome中都返回了一个空数组,所以我就不再继续这样做了。啊,你检查了几个浏览器,这是一个浏览器问题?谢谢!我会试试的。没问题-很乐意帮忙。祝你好运:)