["test", "one", "two", "thre-6ren">
gpt4 book ai didi

JavaScript String.split 在字符串文字上生成数组

转载 作者:数据小太阳 更新时间:2023-10-29 05:35:55 25 4
gpt4 key购买 nike

我见过一些 javascript 程序员使用这种模式来生成数组:

"test,one,two,three".split(','); // => ["test", "one", "two", "three"]

他们不是拆分用户输入或某些保存字符串值的变量,而是拆分硬编码的字符串文字以生成数组。在所有情况下,我都看到了像上面这样的一行,似乎只使用数组文字而不依赖 split 从字符串创建数组是完全合理的。是否有任何理由表明上述创建数组的模式有意义,或者比简单地使用数组文字更有效?

最佳答案

当在运行时拆分字符串而不是使用数组文字时,您是以少量的执行时间换取少量的带宽。

在大多数情况下,我认为这是不值得的。如果您在发布代码之前对其进行压缩和 gzip 压缩,as you should be 在字符串中使用单个逗号而不是在数组中的两个字符串中使用引号-逗号-引号对节省带宽几乎没有影响。事实上,在缩小和 gzip 压缩之后,由于添加了可压缩性较差的 .split(','),使用拆分字符串的版本可能会更长。

拆分字符串而不是创建字符串数组文字确实意味着更少的输入,但我们 spend more time reading code than writing it 。将来使用数组文字会更易于维护。如果您想向数组中的项目添加逗号,只需将其添加为数组文字中的另一个字符串即可;使用 split 您将不得不使用不同的分隔符重新编写整个字符串。

我使用 split 和字符串文字来创建数组的唯一情况是,如果我需要一个只包含单个字符的数组,即字母表、数字或字母数字字符等。

var letters = 'abcdefghijklmnopqrstuvwxyz'.split(''),
numbers = '0123456789'.split(''),
alphanumeric = letters.concat(numbers);

您会注意到我使用 concat 来创建 alphanumeric。如果我改为将 lettersnumbers 的内容复制粘贴到一个长字符串中,那么这段代码会压缩得更好。我没有这样做的原因是那将是一个微观优化,会损害 future 的可维护性。如果将来需要将带有重音符、波浪号或变音符号的字符添加到字母列表中,可以将它们添加到一个地方;也无需记住将它们复制粘贴到 alphanumeric 中。

拆分字符串可能对 code golf 有用,但在缩小和 gzip 压缩是因素的生产环境中,编写易于阅读、可维护的代码很重要,仅使用数组文字几乎总是更好的选择。

关于JavaScript String.split 在字符串文字上生成数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28162171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com