js多个(N)个数组的的元素组合排序算法

您所在的位置:网站首页 js多个数组的排列组合 js多个(N)个数组的的元素组合排序算法

js多个(N)个数组的的元素组合排序算法

2024-03-23 12:02| 来源: 网络整理| 查看: 265

现在有一批手机,其中颜色有['白色','黑色','金色','粉红色'];内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[['白色','16G','移动'], ['白色','16G','联通'] ...]这样的组合,一个数组里面包含若干个数组,进行组合

写法1:

function doExchange(arr, depth) { for (var i = 0; i < arr[depth].length; i++) { result[depth] = arr[depth][i] if (depth != arr.length - 1) { doExchange(arr, depth + 1) } else { results.push(result.join('|')) } } } function test(arr) { results = []; result = []; doExchange(arr, 0); console.log(results.length, results.join(',')); } garr = [ ['a', 'b', 'c'], ['1', '2', '3'], ['x', 'y', 'z'], ] test(garr)

写法2:

// 执行组合排列的函数 function doExchange(array){ var len = arr.length; // 当数组大于等于2个的时候 if(len >= 2){ // 第一个数组的长度 var len1 = arr[0].length; // 第二个数组的长度 var len2 = arr[1].length; // 2个数组产生的组合数 var lenBoth = len1 * len2; // 申明一个新数组,做数据暂存 var items = new Array(lenBoth); // 申明新数组的索引 var index = 0; // 2层嵌套循环,将组合放到新数组中 for(var i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3