javascript - Switch语句: Applying Multiple Arguments in One Output

标签 javascript

我试图弄清楚如何将两个不同的条件应用于 switch 语句中的一个输出。例如,我有一个函数可以根据第二个参数获取的参数来设置字符串的样式。第一个和第二个输出没问题,因为它只有一个样式参数,但第三个输出有。我找不到将大写和反转样式应用于字符串的方法。我尝试循环 switch 语句。我想知道是否有好的解决方案。

function caseStyle(string, style) {
  function toUpper(string) {
    string = string.toUpperCase();
    return string;
  }

  function toReversed(string) {
    string = string.split("").reverse().join("");
    return string;
  }

  switch (style) {
    case "upper":
      string = toUpper(string);
      break;
    case "reversed":
      string = toReversed(string);
      break;
  }
  return string;
}

console.log(caseStyle("hello", "upper")); //output: HELLO
console.log(caseStyle("hello", "reversed")); //output: olleh
console.log(caseStyle("hello", ["upper", "reversed"])); // expected output: OLLEH

最佳答案

您需要检查 style 是否为数组,并进行相应处理

或者,强制它成为一个数组style = [style].flat(),然后迭代该数组

在传入数组的情况下,.flat() 会展平数组

如下

function caseStyle(string, style) {
  style = [style].flat();
  function toUpper(string) {
    string = string.toUpperCase();
    return string;
  }

  function toReversed(string) {
    string = string.split("").reverse().join("");
    return string;
  }
  style.forEach(style => {
    switch (style) {
      case "upper":
        string = toUpper(string);
        break;
      case "reversed":
        string = toReversed(string);
        break;
    }
  });
  return string;
}

console.log(caseStyle("hello", "upper")); //output: HELLO
console.log(caseStyle("hello", "reversed")); //output: olleh
console.log(caseStyle("hello", ["upper", "reversed"])); // expected output: OLLEH

关于javascript - Switch语句: Applying Multiple Arguments in One Output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75077629/

相关文章:

javascript - 谷歌分析页面跟踪在 angularjs 应用程序中无法正常工作

javascript - 使用 jquery 更改 wordpress 主题中的一些 css 属性

javascript - 将可观察数组存储在变量中并替换其内容

javascript - CSS 效果适用于静态表格数据,但当表格数据由 javascript 添加时效果不佳

javascript - 验证特定格式而不使用 "-"分割字符串

javascript - 如何在 MVC 5 中通过单个 Ajax POST 请求发送 ViewModel 和文件?

javascript - useEffect 的回调的 return 语句什么时候执行?

javascript - 根据其他输入字段有条件地显示/隐藏未嵌套的标签/输入表单字段

javascript - 使用 jQuery 遍历列表项

javascript - 如何使选择的下拉列表高于所有其他元素