Javascript масивът винаги връща празен масив в iOS9 бета

Имам много странен проблем, който се случва в iOS9 beta 5 - масивите изглеждат празни дори когато са добавени елементи.

Звучи налудничаво, но ето как изглежда в Safari iOS9 - това е само на началната страница на Google, без плъгини - само ванилен webkit/javascript:

въведете описание на изображението тук

Докато на работния плот на Safari виждам правилното поведение:

въведете описание на изображението тук

Някой друг има ли този проблем?

Ето кода за възпроизвеждане:

myArray = ['cat', 'dog', 'fish']  
console.log(myArray.length)  
console.log(myArray)  
console.log(myArray.slice(0,1))  
console.log(myArray.indexOf('fish')) 

Благодаря!


person Stephen Bartholomew    schedule 26.08.2015    source източник
comment
И така, проблемът в масива ли е или в конзолата?   -  person RobG    schedule 26.08.2015
comment
какво получаваш с myArray.join('')?   -  person Tom    schedule 26.08.2015
comment
@RobG може да е конзолата - но единствената причина, поради която проверих, е грешка в приложение, която може да е причинена от това поведение.   -  person Stephen Bartholomew    schedule 26.08.2015
comment
@Tom ах - всъщност връща правилните елементи...   -  person Stephen Bartholomew    schedule 26.08.2015
comment
@StephenBartholomew—няма спецификация за това какво трябва да прави конзолата, но със сигурност това, което изглежда прави, не е много полезно. :-/   -  person RobG    schedule 26.08.2015


Отговори (3)


Това изглежда е причинено от внедряването на toString, което console.log извиква, а не от празен масив.

person Tom    schedule 26.08.2015
comment
Това със сигурност изглежда най-вероятно - трябва да е червена херинга, че също така перфектно обяснява грешката, която виждам. Ще приема това за правилно и ще продължа да търся - ако масивите наистина действаха така, предполагам, че щях да видя много повече проблеми! - person Stephen Bartholomew; 26.08.2015

Изглежда, че използвате Safari 8, за да проверите iOS 9. Трябва да използвате Safari 9 или по-нова версия, за да проверите iOS 9. Safari 9 е наличен на El Capitan, Yosemite и Mavericks.

Можете също така да използвате WebKit Nightly на Yosemite и Mavericks, за да получите еквивалентно поведение.

person JoePeck    schedule 14.10.2015

Проблемът е в конзолата. Можете да видите стойността за отстраняване на грешки с помощта на предупреждение, ако е необходимо.

напр.: alert(['cat', 'dog']). Ще изскочи резултатът, от който се нуждаете.

Имах подобен проблем, когато използвах метода replaceAll. Няма поддръжка в ios/safari 12. Ако се сблъскате с това, вероятно може да имате проблеми с някои функции като replaceAll. За моя случай трябваше да използвам polyfill.

person HenriqueMD    schedule 11.05.2021