1
// node lodash_conditional_chain_method.js
_ = require('lodash');
var data = [{
label: 'Alice'
}, {
label: 'Bob'
}, {
label: 'Charlie'
},{
label: 'Dave'
},{
label: 'Eve'
}];
function getLabelString(entries, maxEntries) {
var s = 'Labels: ';
var chain = _.chain(entries);
// conditional chain method
if (maxEntries !== undefined) {
chain = chain.take(maxEntries);
}
s += chain
.map('label')
.sort()
.join(', ')
.value();
if (maxEntries !== undefined && _.size(entries) > maxEntries) {
s += ', ...';
}
return s;
}
console.log(getLabelString(data));
// Labels: Alice, Bob, Charlie, Dave, Eve
console.log(getLabelString(data, 3));
// Labels: Alice, Bob, Charlie, ...
我使用lodash創建concatinated標籤String。鏈接期間,我有一個鏈式方法(take
),只有在定義了maxEntries
值時才應該執行該方法。目前我這樣做,用if
-陳述。使用Lodash的條件鏈方法
有沒有辦法以更「連鎖」的方式做到這一點?
ps:也許還有一個更好的方法在末尾附加...
?