javascript - 如何检查所有参数是否相同并返回字符串

标签 javascript typescript if-statement

我想将传递到我的函数的参数(所有字符串)与分隔符 ' | 一起加入',但如果它们都是空字符串,则只传递一个空字符串。

我有以下内容:

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

关于javascript - 如何检查所有参数是否相同并返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52889485/

相关文章:

javascript - meteor 无法访问收藏

javascript - 如何在返回值时不中断函数/循环(Js)

javascript - OAuth2 访问源错误

javascript - html5 canvas 为绘制到 Canvas 的图像添加拖放功能

arrays - 属性在类型上不存在/不能用作索引类型

c# - 如何使 textBox 值等于 datagridview 单元格值

angular - Angular 5 服务中的 SetTimeout

javascript - 如何在 Angular 中添加动态外部脚本?

c++ - 如何测试 "binary"或 unset char*?

java - 改变方法的返回值