我想将传递给函数的参数(所有字符串)与定界符“ | |”连接起来。 ',但如果它们都是空字符串,则只需传递一个空字符串。

我有以下内容:

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('', '', ''), ']');

09-29 23:08