Javascript Android 5.1未定义函数外部的数组元素
我有一个带有一些JavaScript代码的cordova应用程序: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
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中都返回了一个空数组,所以我就不再继续这样做了。啊,你检查了几个浏览器,这是一个浏览器问题?谢谢!我会试试的。没问题-很乐意帮忙。祝你好运:)