У меня есть приложение Cordova с некоторым кодом JavaScript:элемент массива вне функции не определено с Android 5.1
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 и моей Blackberry с OS 10 я также получаю 5
. Однако с телефоном Cubot с Android 5.1 я получаю undefined
.
Что может привести к этому поведению? Мое решение состоит в том, чтобы сделать return_arr глобальным, но меня все еще интересует, почему мой код должен быть неправильным ?!
Да Я знаю, что объект может быть лучшим. Однако ассоциативный массив работает в некоторой среде, но не на телефоне Cubot. Зачем? – zuluk
Мой вопрос будет больше о том, почему он работает в любой среде, а не почему это не в некоторых. Это не должно работать вообще. Мой ответ был опубликован как альтернатива вашему предложению сделать массив глобальным. Помимо того, что это средство, чтобы просто «заставить его работать», оно также ничего не должно менять! Этот код возвращает пустой массив как в IE, так и в Chrome, поэтому я просто просто перестану спускаться по этому маршруту. – Archer
А, вы проверили несколько браузеров и это проблема с браузером? Так что спасибо! Я попробую. – zuluk