【发布时间】:2020-03-04 17:44:55
【问题描述】:
一个团队将他们的项目交给了我,我在其中看到了一些奇怪的东西。 他们首先将一个变量声明为一个数组:
private myvariable: Array<any> = [];
但在代码中,他们将其用作对象,执行以下操作:
myvariable['key'] = { 'prop': 'val' }
这最终被评估为奇怪的东西:
[key: {...}]
有人知道如何解释这种数据结构吗?
【问题讨论】:
-
我不认为你对此感到“奇怪”。这是一个数组,其元素键为“key”,其中包含哈希。在我看来完全正常。
-
见blog.niftysnippets.org/2011/01/myth-of-arrays.html。 Javascript 数组只是对象的子类,它具有魔术长度属性、自定义字符串强制方法以及一些其他附加功能,例如
forEach、push等。索引运算符 ([x]) 实际上与常规运算符没有变化在任何情况下,对象和数组键的行为都类似于字符串。 -
还要记住这一点:“JSON 是一种编码。” 这是一种将复杂数据结构表示为字符串的标准方式,可以发送并使用 AJAX 接收。与所有语言一样,PHP 提供了一种方法来编码和解码这些字符串来往数据结构。
-
@MikeRobinson 这是我每天都看不到的东西,所以这对我来说很奇怪。并不是每个人都对 JavaScript 有同样的了解。
-
@GarrettMotzner 感谢您的评论,读得很好。
标签: javascript arrays json typescript