文档章节

js数组排列

chro008
 chro008
发布于 06/04 11:44
字数 262
阅读 16
收藏 0

抽象问题:你面前有n个筐,每个筐都放着不同数量的不同物品,让你在每个筐中拿一个物品,请问一共有多少可能,分别是什么?

function combine(twoDimensionalArr) {

//二维数组中每个数组的最大长度
var maxLengthArr = [];
//遍历过程中每个数组的下标
var tempIndexArr = [];
for (var i = 0; i < twoDimensionalArr.length; i++) {
	maxLengthArr.push(twoDimensionalArr[i].length);
	tempIndexArr.push(0);
}
//组合一共有多少种
var count = 1;
for (var i = 0; i < maxLengthArr.length; i++) {
	count = count * maxLengthArr[i];
}

var combineValues = [];
var combineItem;
for (var i = 0; i < count; i++) {
	if (i !== 0) {
		var changeIndex = tempIndexArr.length - 1;
		var sholdAdd = false;
		while (!sholdAdd) {
			tempIndexArr[changeIndex] += 1;
			if (tempIndexArr[changeIndex] >= maxLengthArr[changeIndex]) {
				tempIndexArr[changeIndex--] = 0;
				sholdAdd = false;
			} else {
				sholdAdd = true
			}
		}
	}

	combineItem = [];
	for (var j = 0; j < tempIndexArr.length; j++) {
		combineItem.push(twoDimensionalArr[j][tempIndexArr[j]]);
	}
	combineValues.push(combineItem);
}
console.log(combineValues);
return combineValues;
}


combine([[1,2,3],["a","b","c","d"],["A","B"]]);`

© 著作权归作者所有

chro008

chro008

粉丝 5
博文 46
码字总数 19512
作品 0
海淀
程序员
私信 提问
JavaScript数组(一)——排序

JavaScript数组中有一个方法,可用于反转数组,如下代码所示: 但是多数情况下这并不能满足开发的需求,真实的情况往往是降序或升序排列。对数组进行排序很自然地会想到冒泡排序算法,下面我...

Bob2100
03/17
22
0
ECshop标签,ECshop标签用法

{$ecscsspath}为css加载路径 {insert_scripts files=’文件’}加载ECSHOP系统JS文件 $navigatorlist.top:查看购物车 | 选购中心 | 标签云| 报价单(数组) $nav.url:url地址 $nav.name:名称...

杨强易
2012/06/01
897
0
精心收集的 95 个超实用的 JavaScript 代码片段( ES6+ 编写)

目录 Array 数组 Array concatenation (数组拼接) Array difference (数组比较) Array includes (数组包含) Array intersection (数组交集) Array remove (移除数组中的元素) Array sample ......

大灰狼的小绵羊哥哥
2018/11/13
0
0
javascript数组的申明方式以及常用方法

数组的定义: 方法1. var mycars=new Array() mycars[0]="Saab" mycars[1]="Volvo" mycars[2]="BMW" 方法2. 定义和初始化一起: var mycars=new Array("Saab","Volvo","BMW") 或者另一种写法......

icheer
2014/07/05
126
0
刷《一年半经验,百度、有赞、阿里面试总结》·手记

在掘金上看到了一位大佬发了一篇很详细的面试记录文章-《一年半经验,百度、有赞、阿里面试总结》,为了查漏补缺,抽空就详细做了下。(估计只有我这么无聊了哈哈哈) 有给出的或者有些不完善...

大灰狼的小绵羊哥哥
2018/12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用TensorFlow的AI程序运行报错AttributeError: module 'tensorflow' has no attribute 'xxx'

使用TensorFlow的AI程序,在运行时报错AttributeError: module 'tensorflow' has no attribute 'xxx',首先检查是否是包路径不对,一般是版本变化所致。...

织梦之魂
今天
3
0
提示浏览器版本低

本文转载于:专业的前端网站➭提示浏览器版本低 网站网页在遇到浏览器低版本(尤其是IE浏览器)时,提示浏览器版本低(如IE8以及以下),建议用户升级浏览器以获得最好体验。以下是代码: 1...

前端老手
今天
6
0
CentOS 7系统增加swap

转载请注明文章出处:CentOS 7系统增加swap swap是位于磁盘上的特殊文件(或分区),属于“虚拟内存”的一部分。通俗点就是内存的备胎,内存充足的情况下,基本上没swap什么事(和设置有关)...

tlanyan
今天
6
0
基于Prometheus和Grafana的监控平台 - 环境搭建

相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。 Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说...

JAVA日知录
今天
6
0
PHP运行时全局构造体

struct _php_core_globals { zend_bool magic_quotes_gpc; // 是否对输入的GET/POST/Cookie数据使用自动字符串转义。 zend_bool magic_quotes_runtime; //是否对运行时从外部资源产生的数据使...

冻结not
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部