我想将传递给函数的参数(所有字符串)与定界符“ | |”连接起来。 ',但如果它们都是空字符串,则只需传递一个空字符串。
我有以下内容:
constructString(one: string, two: string, three: string) {
if (one === '' && two === '' && three === '') {
return '';
}
return [one, two, three].filter(Boolean).join('|')
}
我的问题是...是否有一种更简单,更优雅的方法来执行此操作,或者我缺少JS具有执行此任务所需的一些有用功能?
最佳答案
您可以使用...
运算符
function constructString(...args) {
if (args.every(x => x === '')) {
return '';
}
return args.join('|');
}
console.log('[', constructString('a', 'b', 'c'), ']');
console.log('[', constructString('', '', ''), ']');
对于极简主义者
function constructString(...args) {
return args.every(x => x === '') ? '' : args.join('|');
}
console.log('[', constructString('a', 'b', 'c'), ']');
console.log('[', constructString('', '', ''), ']');