使用字符串拆分而不是带子串的数组声明数组

时间:2013-01-30 12:21:05

标签: javascript arrays string split

我经常注意到人们分裂一串子串而不是只声明必要字符串的数组。

moment.js中的示例:

langConfigProperties = 'months|monthsShort|weekdays|weekdaysShort|weekdaysMin|longDateFormat|calendar|relativeTime|ordinal|meridiem'.split('|'),

jQuery

中的示例
 "Boolean Number String Function Array Date RegExp Object".split(" ")

喜欢这种方式的理由是什么?

1 个答案:

答案 0 :(得分:15)

It's way slower to use the .split,但它的优点是代码可以更短(更少字符):

var array = 'months|monthsShort|weekdays|weekdaysShort|weekdaysMin|longDateFormat|calendar|relativeTime|ordinal|meridiem'.split('|');
var array = ['months','monthsShort','weekdays','weekdaysShort','weekdaysMin','longDateFormat','calendar','relativeTime','ordinal','meridiem'];

在这个例子中,差异并不大,但如果你有100个变量,差异会变得更大。

分割版本中分隔符添加的长度为11 + 1 * n,其中n是元素数,11代表.split('|')
对于数组版本,2 + 3 * (n - 1)2的{​​{1}}。

这意味着只要您有6个元素,[]版本就会更短:

.split