Javascript 数组在 iOS9 beta 中总是 returns 空数组
Javascript array always returns empty array in iOS9 beta
我在 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'))
谢谢!
这似乎是由 toString
的实现引起的,console.log
正在调用,而不是空数组。
看起来您正在使用 Safari 8 检查 iOS 9. 您应该使用 Safari 9 或更高版本来检查 iOS 9. Safari 9 在 El Capitan 上可用,Yosemite,和小牛队。
您也可以在 Yosemite 和 Mavericks 上使用 WebKit Nightly 以获得相同的行为。
问题出在控制台上。
如果需要,您可以使用警报查看要调试的值。
例如:alert(['cat', 'dog'])
。它会弹出你需要的结果。
我在使用 replaceAll
方法时遇到了类似的问题。它在 ios/safari 12 中不支持。如果您遇到此问题,您可能会遇到一些功能问题,例如 replaceAll。对于我的情况,我不得不使用 polyfill.
我在 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'))
谢谢!
这似乎是由 toString
的实现引起的,console.log
正在调用,而不是空数组。
看起来您正在使用 Safari 8 检查 iOS 9. 您应该使用 Safari 9 或更高版本来检查 iOS 9. Safari 9 在 El Capitan 上可用,Yosemite,和小牛队。
您也可以在 Yosemite 和 Mavericks 上使用 WebKit Nightly 以获得相同的行为。
问题出在控制台上。 如果需要,您可以使用警报查看要调试的值。
例如:alert(['cat', 'dog'])
。它会弹出你需要的结果。
我在使用 replaceAll
方法时遇到了类似的问题。它在 ios/safari 12 中不支持。如果您遇到此问题,您可能会遇到一些功能问题,例如 replaceAll。对于我的情况,我不得不使用 polyfill.