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

标签 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(" ")

喜欢这种方式的原因是什么?

最佳答案

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 用于 []

这意味着只要你有 6 个元素,.split 版本就会更短:

for(var i = 5; i < 8; i++){
    console.log('Elements:', i, 'split:', 11 + (i-1), 'array:', 2 + 3 * (i-1));
}
// Elements: 5 split: 15 array: 14
// Elements: 6 split: 16 array: 17
// Elements: 7 split: 17 array: 20

关于javascript - 使用字符串拆分而不是带有子字符串的数组声明数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14603884/

相关文章:

javascript - Mongoose JS路径默认生成id

javascript - 初学者 Javascript 和 DOM 应该先学什么?

javascript - jQuery 二次方程

PHP Array_diff 当有重复的数组值时

c++将文本文件读入结构数组不起作用

arrays - 如何在 ruby​​ 中使用空行作为分隔符将字符串拆分为数组?

python 3 : How can I add decimals that are inside a string

javascript - "slc start"是怎么判断应该加载哪个js的呢?

c++ - 如何在 C++ 中删除非动态分配的数组?

java - Java中如何分割多行字符串