Javascript数组总是在iOS9 beta中返回空数组

时间:2015-08-26 12:31:49

标签: javascript mobile-safari ios9

我在iOS9 beta 5中发生了一个非常奇怪的问题 - 即使添加了元素,数组似乎也是空的。

听起来很疯狂,但这就是Safari iOS9中的样子 - 这只是在google主页上,没有插件 - 只是vanilla webkit / javascript:

enter image description here

在Safari桌面上,我看到了正确的行为:

enter image description here

还有其他人有这个问题吗?

这里是重现的代码:

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

谢谢!

3 个答案:

答案 0 :(得分:1)

看起来您正在使用Safari 8来检查iOS 9.您应该使用Safari 9或更高版本来检查iOS9.Safé9可用于El Capitan,Yosemite和Mavericks。

你也可以在Yosemite和Mavericks上使用WebKit Nightly来获得相同的行为。

答案 1 :(得分:0)

这似乎是由toString的实现引起的,console.log正在调用,而不是空数组。

答案 2 :(得分:0)

问题出在控制台上。 如果需要,您可以使用警报查看要调试的值。

例如:alert(['cat', 'dog'])。它会弹出你需要的结果。

我在使用 replaceAll 方法时遇到了类似的问题。它在 ios/safari 12 中不支持。如果您遇到这种情况,您可能会遇到某些功能(例如 replaceAll)的问题。就我而言,我不得不使用 polyfill