Find all lowercase and uppercase combinations of a string in Javascript(在Java脚本中查找字符串的所有小写和大写组合)
本文介绍了在Java脚本中查找字符串的所有小写和大写组合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找此stackoverflow question将在Java脚本中得到回答。
因此,如果我的输入是"word",则函数应返回: Word, 单词, 单词, 单词, 单词, 单词, 等等。
这是我到目前为止所拥有的,但它只产生排列(不大写任何内容)
var perm = function(str){
var results = [];
var combos = function(reference, appendTo){
appendTo = appendTo || "";
if(reference.length === 0) {
results.push(appendTo);
}
for(var i = 0; i < reference.length; i++){
var current = reference.splice(i, 1);
combos(reference, appendTo+current);
reference.splice(i, 0, current)
}
}
combos(str.split(""));
return results;
}
perm("word");
推荐答案
一个选项是通过二进制逻辑生成大写排列。
作为下面代码片段的一个简单示例,请考虑下表,其中左列是当前排列的二进制表示,右列是结果大写:
0000 | word
1000 | Word
0100 | wOrd
1100 | WOrd
...
1111 | WORD
数据-lang="js"数据-隐藏="假"数据-控制台="假"数据-巴贝尔="假">
// Used to display the results
const write = (msg) => {
document.body.appendChild(document.createElement('div')).innerHTML = msg;
};
const input = "word";
const letters = input.split("");
const permCount = 1 << input.length;
for (let perm = 0; perm < permCount; perm++) {
// Update the capitalization depending on the current permutation
letters.reduce((perm, letter, i) => {
letters[i] = (perm & 1) ? letter.toUpperCase() : letter.toLowerCase();
return perm >> 1;
}, perm);
const result = letters.join("");
write(result);
}
请注意,从理论上讲,此方法可以一直工作到Number.MAX_SAFE_INTEGER
,直到长度为52的输入,但实际上您会遇到性能问题。
这篇关于在Java脚本中查找字符串的所有小写和大写组合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在Java脚本中查找字符串的所有小写和大写组合


猜你喜欢
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01