Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么视图I和#x27;您是否将其作为图像包含?_Javascript_Arrays_Typescript_Data Structures - Fatal编程技术网

Javascript 为什么视图I和#x27;您是否将其作为图像包含?

Javascript 为什么视图I和#x27;您是否将其作为图像包含?,javascript,arrays,typescript,data-structures,Javascript,Arrays,Typescript,Data Structures,(我对问题进行了编辑,以便更清楚、更简短地描述。) 为什么在展开时有一个键为20.42,但它没有显示在折叠视图中(在红色圆圈中)。 请看下面的屏幕截图,奇怪的是在扩展视图中有一个数组的索引是20.42 发生在这种情况下: 我使用push方法将元素添加到空数组中 然后console.log数组 是否有人错误地将20.42分配给数组 JavaScript数组是将特殊行为分配给属性的对象,这些属性的名称是数组索引(转换为给定范围内整数的字符串),具有特殊的长度属性,并由数组支持。原型。它们仍然是对象,

(我对问题进行了编辑,以便更清楚、更简短地描述。)

为什么在展开时有一个键为
20.42
,但它没有显示在折叠视图中(在红色圆圈中)。 请看下面的屏幕截图,奇怪的是在扩展视图中有一个数组的索引是
20.42

发生在这种情况下:

  • 我使用
    push
    方法将元素添加到空数组中
  • 然后
    console.log
    数组
  • 是否有人错误地将
    20.42
    分配给数组

    JavaScript数组是将特殊行为分配给属性的对象,这些属性的名称是数组索引(转换为给定范围内整数的字符串),具有特殊的
    长度
    属性,并由
    数组支持。原型
    。它们仍然是对象,这意味着它们也可以具有条目不是数组索引的属性:

    const a=[];
    [0]=“零,正常数组项”;
    a[20.42]=“20.42,普通对象属性,不是数组项”;
    控制台日志(a)
    
    在真实控制台中查看
    这是获取小数点的方法


    顺便说一句,它不是索引。console.log输出和array length属性说明了一切。还困惑吗?您需要重温基本的JavaScript编程。

    您能发布一篇文章来说明推送导致这种结构的行为吗?数组是对象,而对象属性键只是字符串,所以这是很可能看到的,只是很奇怪(可能表示代码已损坏)@AlanWang是的,这是可能的,因为JS数组是具有长度属性的对象。您是否在问一个关于数组的一般问题(即,任何数组如何能够具有非整数的索引)?或者,您是在问这个特定数组如何具有非整数的属性/索引(即
    20.42
    )?@AlanWang您的英语很好。这肯定比我用你的母语说的要好。你的问题比许多以英语为母语的人提出的问题要好。然而,我并不清楚你想知道什么。我可以看到一些不同的解释你的问题。例如:A)“这在我的代码中是如何发生的?”B)“通常情况下,这样的索引如何存在于数组中?”或C)“为什么我作为图像包含的视图之间存在差异?”对于B,下面的答案可以涵盖这一点。对于A和C,我们需要您提供更多信息(例如代码)。等等,为什么堆栈代码段控制台中没有显示任何内容?这是什么黑魔法?好的,明白了,你勾选了“不显示控制台”…@VLAZ-代码段控制台执行
    数组。isArray
    测试,如果它是数组,则只显示数组元素,而不是对象的所有属性。因此,我禁用了代码段控制台以避免混淆。:-)编辑:是的,没错。@CodeManiac当你制作一个代码片段时,左边有一个勾选框。(我必须复制片段并编辑它,才能真正注意到它)。它在代码段的开头添加了一个
    console:false
    。@AlanWang-“折叠视图”不显示键,你怎么知道20.42不存在?但在任何情况下,该视图都是阵列的快照,与记录阵列时一样。当你展开数组时,你会从你展开它的时候得到它的内容,所以它们不匹配是很正常的。(这是蓝色圆圈中的小“i”告诉你的,如果你将其悬停。)你可以在这里创建一个代码片段,这将使答案更可读,请阅读添加代码和数据作为文本(),而不是图像。图片:A)不允许我们复制和粘贴代码/错误/数据进行测试;B) 不允许基于代码/错误/数据内容进行搜索;和。一般来说,文本格式的代码/错误/数据>>>>图像格式的代码/错误/数据>>无。如果图像添加的内容不仅仅是文本代码/错误/数据,那么除了代码格式的文本之外,还应该使用图像。但我只使用
    。push
    方法将元素添加到空数组中。然后把它记录下来。永远不要分配它。我正试图复制它。@double beep我在这里的目的不是粘贴一些可执行代码,而是显示浏览器控制台如何显示某些内容。@AlanWang一定是有什么原因导致了这种行为。正如我在上面的例子中所展示的那样。即使是错误的,也是有可能的。