【问题标题】:Use integer as key of associative array does not work on iOS safari使用整数作为关联数组的键在 iOS safari 上不起作用
【发布时间】:2015-07-11 23:56:10
【问题描述】:

我正在使用 cordova 开发一个移动应用程序。经测试,该应用在 Android 上运行良好,但不适用于 iOS。

在调试它时,我发现当我尝试访问关联数组时,iOS 总是将关联数组作为字符串并在键值的索引处返回一个字符。

var associative = {'5':[{'id': 5},{'id':6}]};
var val = associative['5'];

上面的代码在 iOS 上总是返回 '[' 但在 Android 上返回 [{'id': 5},{'id':6}]。

这是 iOS 和 safari 的问题吗?我该如何解决这个问题?

【问题讨论】:

  • 如果使用双引号会怎样?
  • @NicRaboy 是一样的。看起来我必须使用字符串而不是整数作为键。
  • 我在 iOS 上测试过,我也得到了 [{"id":5},{"id":6}]
  • @jcesarmobile 您使用的是哪个版本的 iOS?我在 8.3 上进行了测试,但无法使其正常工作。我只有通过将键更改为字符串,如'id5'而不是'5'才能使其工作。
  • 我在 8.1.3 上测试过

标签: javascript ios cordova safari


【解决方案1】:

对我有用的解决方法是避免使用整数作为关联数组的键。将密钥更改为“id5”后

{'id5':[{'id': 5},{'id':6}]};

我可以从 Android 和 iOS 上的关联数组中检索值。我相信这是野生动物园的一个错误。也许它将在以后的版本中修复。

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多