JavaScript/js实现数组中所有元素各种数量组合字符串的生成

简介: JavaScript/js实现数组中所有元素各种数量组合字符串的生成
function getCombination(arr,min=1) {
    //min:最低组合数量(默认是1)
    min<0&&(min=1);
    let a;
    for (a = []; a.push([]) < arr.length;);
    let b = Math.pow(2, arr.length) - 1
    for (let i = 1; i <= b; i++) {
        let c = []
        for (let s = i, k = 0; s > 0; s >>= 1, k++) {
            if (s & 1 === 1) { c.push(arr[k]) }
        }
        a[c.length - 1].push(c.join(''))
    }
    let r = [];
    a.forEach((v,i) => {
        i>=min-1&&(r = r.concat(v));
    });
    return r;
}
// getCombination([1,2,3]);
// 输出 ['1', '2', '3', '12', '13', '23', '123']
// getCombination(['A','B','C','D']);
// 输出 ['A', 'B', 'C', 'D', 'AB', 'AC', 'BC', 'AD', 'BD', 'CD', 'ABC', 'ABD', 'ACD', 'BCD', 'ABCD']
// getCombination([1,2,3],2);
// 输出 ['12', '13', '23', '123']
// getCombination(['A','B','C','D'],2) 
// 输出 ['AB', 'AC', 'BC', 'AD', 'BD', 'CD', 'ABC', 'ABD', 'ACD', 'BCD', 'ABCD']

 


相关文章
|
28天前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
25天前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
28天前
|
JavaScript 前端开发
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
Moment.js与其他处理时间戳格式差异的JavaScript库相比有什么优势?
|
1月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
28天前
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
23 2
|
1月前
|
JavaScript 前端开发 开发者
.js的dom元素操作
【10月更文挑战第29天】通过灵活运用这些 DOM 元素操作方法,JavaScript 可以实现丰富的网页交互效果,如动态更新页面内容、响应用户操作、创建和删除页面元素等。在实际开发中,开发者可以根据具体的需求和场景,选择合适的 DOM 元素操作方法来实现所需的功能,为用户提供更加流畅和动态的网页体验。
|
28天前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
2月前
|
Web App开发 JavaScript 前端开发
Node.js:JavaScript世界的全能工具
Node.js:JavaScript世界的全能工具
|
2月前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API服务器
【10月更文挑战第12天】使用JavaScript和Node.js构建简单的RESTful API服务器
25 0
|
4月前
|
JavaScript 前端开发 索引
JS遍历数组里数组下的对象,根据数组中对象的某些值,组合成新的数组对象
这篇文章介绍了如何在JavaScript中遍历数组里数组下的对象,并根据对象的某些属性值组合成一个新的数组对象。主要内容包括使用ES6的`for...of`循环来遍历数组对象,然后根据需要提取对象中的属性值,并将它们放入新的对象中,最终形成一个新的对象数组以供使用。
下一篇
DataWorks