通过 JavaScript 中的改变大小写来创建排列


问题

我们需要编写一个 JavaScript 函数,它接受一个字符串字符 str 作为第一个也是唯一参数。

我们的函数可以单独地将每个字母转换为小写或大写以创建另一个字符串。我们应该返回我们创建的所有可能字符串的列表。

例如,如果函数的输入是

输入

const str = 'k1l2';

输出

const output = ["k1l2","k1L2","K1l2","K1L2"];

示例

代码如下 −

 实时演示

const str = 'k1l2';
const changeCase = function (S = '') {
   const res = []
   const helper = (ind = 0, current = '') => {
      if (ind >= S.length) {
         res.push(current)
         return
      }
      if (/[a-zA-Z]/.test(S[ind])) {
         helper(ind + 1, current + S[ind].toLowerCase())
         helper(ind + 1, current + S[ind].toUpperCase())
      } else {
         helper(ind + 1, current + S[ind])
      }
   }
   helper()
   return res
};
console.log(changeCase(str));

输出

[ 'k1l2', 'k1L2', 'K1l2', 'K1L2' ]

更新于: 24-Apr-2021

185 次浏览

职业起步

完成课程以获得认证

开始
广告