javascript代码如下:

         var arr = [1, 2, 3];
// 临时变量,用于输出
var temp = [];
function n(arr) {
for (var i = 0; i < arr.length; i++) {
// 插入第i个值
temp.push(arr[i]);
// 复制数组
var copy = arr.slice();
// 删除复制数组中的第i个值,用于递归
copy.splice(i, 1);
if(copy.length == 0) {
// 如果复制数组长度为0了,则打印变量
console.log(temp);
}else {
// 否则进行递归
n(copy);
}
// 递归完了之后删除最后一个元素,保证下一次插入的时候没有上一次的元素
temp.pop();
}
}
n(arr);

javascript之数组的全部排列组合的更多相关文章

  1. js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合

    现在有一批手机,其中颜色有['白色','黑色','金色','粉红色']:内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[[ ...

  2. JavaScript 二维数组排列组合2

    <html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...

  3. JavaScript 递归法排列组合二维数组2

    <html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...

  4. JavaScript 递归法排列组合二维数组

    <html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...

  5. JavaScript 二维数组排列组合

    <html> <head> <title>二维数组排列组合</title> </head> <body> <div id= ...

  6. PHP数组内容不重复组合排列算法

    最近在做ecshop的商品库存模块,分别给一款商品的多个属性组合设置库存,如下图: 一款手机有不同颜色,屏幕尺寸,系统和电量,都要设置不同的库存,如果都要手动选择属性组合,则会耗费很多不必要的时间.假 ...

  7. N个数组中所有元素的排列组合(笛卡尔积)算法

    (1)N个数组对象中所有元素排列组合算法 private List<List<Object>> combineAlg(List<Object[]> nArray) ...

  8. 数组排列组合问题——BACKTRACKING

    BACKTRACKING backtracking(回溯法)是一类递归算法,通常用于解决某类问题:要求找出答案空间中符合某种特定要求的答案,比如eight queens puzzle(将国际象棋的八个 ...

  9. 给定数组a[1,2,3],用a里面的元素来生成一个长度为5的数组,打印出其排列组合

    给定数组a[1,2,3],用a里面的元素来生成一个长度为5的数组,打印出其排列组合 ruby代码: def all_possible_arr arr, length = 5 ret = [] leng ...

随机推荐

  1. hystrix中request cache请求缓存

    有一个概念,叫做reqeust context,请求上下文,一般来说,在一个web应用中, 我们会在一个filter里面,对每一个请求都施加一个请求上下文,就是说,tomcat容器内,每一次请求,就是 ...

  2. java之spring mvc之Controller配置的几种方式

    这篇主要讲解 controller配置的几种方式. 1. URL对应 Bean 如果要使用此类配置方式,需要在XML中做如下样式配置 <!-- 配置handlerMapping --> & ...

  3. 【转载】 C#中使用int.TryParse方法将字符串转换为整型Int类型

    在C#编程过程中,将字符串string转换为整型int过程中,时常使用的转换方法为int.Parse方法,但int.Parse在无法转换的时候,会抛出程序异常,其实还有个int.TryParse方法可 ...

  4. vim插件(vim-emmet)安装步骤

    vim安装插件  vim-emmetvim-emmet网址  https://www.vim.org/scripts/script.php?script_id=2981pathogen.vim网址  ...

  5. springboot中modbus使用

    pom.xml配置: false true ias-snapshots Infinite Automation Snapshot Repository true false ias-releases ...

  6. Caffeine用法

    Caffeine是使用Java8对Guava缓存的重写版本,在Spring Boot 2.0中将取代Guava.如果出现Caffeine,CaffeineCacheManager将会自动配置.使用sp ...

  7. SpringBoot集成MyBatis的分页插件PageHelper--详细步骤

    1.pom中添加依赖包 <!--pageHelper基本依赖 --> <dependency> <groupId>com.github.pagehelper< ...

  8. Java字符串操作工具类

    import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.lang. ...

  9. Ubuntu16.04 网络配置

    Ubuntu 网络配置 安装Ubuntu操作系统之后,为了通过Xshell连接主机,或者连接其他主机.需要进行如下网络配置和ssh服务配置. 1 网络配置 1.1 修改网络配置信息 sudo vi / ...

  10. eclipse设置代码折叠展开快捷键

    /** * 1.General->Editors->Structured Text Editors -> Enable folding 打勾 * .Java->Editors- ...