13

必要な文字列の配列を宣言するだけでなく、サブ文字列の文字列を分割するときによく気づきます。

moment.jsの例:

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

jQueryの例

 "Boolean Number String Function Array Date RegExp Object".split(" ")

そのような方法を好む理由は何ですか?

4

1 に答える 1

15

の使用はかなり遅くなりますが.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
于 2013-01-30T12:26:00.557 に答える