文字列をセパレーターで分割し、可能な組み合わせを見つける最もエレガントな方法を探しています。
例えば:
'foo.bar.baz'
=>
['foo', 'foo.bar', 'foo.bar.baz']
underscorejs を使用してもかまいません。
編集:
私がこれまでに試したこと
function comb(words) {
var combinations = [];
for (var i = 0; i < words.length; i++) {
var currentState = [];
for (var j = 0; j <= i; j++) {
currentState.push(words[j]);
}
console.log('current state', currentState.join('.'));
combinations.push(currentState.join('.'));
}
return combinations;
}
console.log('combinations', comb('foo.bar.baz'.split('.')));
出力するcombinations [ 'foo', 'foo.bar', 'foo.bar.baz' ]
ネストされた状態のアプリにこれを使用しています。例:home.users.list
次の状態がアクティブになっています: home
、home.users
、home.users.list
。