【问题标题】:(new Array(276959)).toString() results in commas(new Array(276959)).toString() 结果为逗号
【发布时间】:2013-06-26 14:43:39
【问题描述】:

每当我尝试打印一个数组时,我都会得到很多,而 Chrome(我的首选浏览器)会阻塞 CPU。

它是怎么来的,它不能将一个简单的数组打印到一个字符串?

【问题讨论】:

  • new Array(276959),创建一个包含276959 元素的数组,NOT 一个具有一个值 (276959) 的数组!数组上的.toString().join(',') 相同。这是预期的输出。如果您想要一个具有一个值的数组,请使用:[276959]new Array 通常想要你想要的。
  • 是的.. 构造函数创建了一个包含 276k 元素的数组.. 你想要什么?
  • 你期待什么?
  • 如果你想要一个包含一个项目的数组,你可能打算使用[276959]。这是一个完美的例子,说明为什么不使用 Array 构造函数而只使用文字
  • 根据 EMCAScript 规范,您使用的是 new Array (len) 构造函数,而不是 new Array ( [ item0 [ , item1 [ , … ] ] ] ) 构造函数。 ("此描述适用于当且仅当 Array 构造函数没有参数至少两个参数" -- 你提供正是一个论点。)

标签: javascript arrays google-chrome


【解决方案1】:

.toString() 按顺序打印数组中的所有值,从第一个值到最后一个值,用逗号分隔每个值。

new Array(276959)定义了一个有276959个空条目的数组,所以数组本身没有值;它只有 276959 个占位符。当您使用.toString() 时,没有要输出的值,但逗号仍然会出现,因为数组有 276959 个占位符。

【讨论】:

    【解决方案2】:

    当你制作时

    new Array(276959)
    

    您实际上是在创建一个包含 276959 个值的数组。

    由于它没有任何内容,每个值都是空的,所以当你尝试打印它时,你只会看到逗号(分隔符)。

    【讨论】:

      猜你喜欢
      • 2019-11-10
      • 1970-01-01
      • 2021-02-16
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多