java 笛卡尔积 数组_在JS中笛卡尔积算法与多重数组笛卡尔积(详细教程)
这篇文章主要介绍了JS笛卡尔积算法与多重数组笛卡尔积实现方法,结合实例形式分析了javascript根据对象或数组生成笛卡尔积的相关操作技巧,需要的朋友可以参考下
本文实例讲述了JS笛卡尔积算法与多重数组笛卡尔积实现方法。分享给大家供大家参考,具体如下:
js 笛卡尔积算法的实现代码,据对象或者数组生成笛卡尔积,并介绍了一个javascript多重数组笛卡尔积的例子,以及java实现笛卡尔积的算法与实例代码。
一、javascript笛卡尔积算法代码
例子,根据对象或者数组生成笛卡尔积。//笛卡儿积组合
function descartes(list) {
//parent上一级索引;count指针计数
var point = {};
var result = [];
var pIndex = null;
var tempCount = 0;
var temp = [];
//根据参数列生成指针对象
for (var index in list) {
if (typeof list[index] == 'object') {
point[index] = {
'parent': pIndex,
'count': 0
}
pIndex = index;
}
}
//单维度数据结构直接返回
if (pIndex == null) {
return list;
}
//动态生成笛卡尔积
while (true) {
for (var index in list) {
tempCount = point[index]['count'];
temp.push(list[index][tempCount]);
}
//压入结果数组
result.push(temp);
temp = [];
//检查指针最大值问题
while (true) {
if (point[index]['count'] + 1 >= list[index].length) {
point[index]['count'] = 0;
pIndex = point[index]['parent'];
if (pIndex == null) {
return result;
}
//赋值parent进行再次检查
index = pIndex;
} else {
point[index]['count']++;
break;
}
}
}
}
调用方法:var result = descartes({'aa':['a','b','c','d'],'bb':['$','%','^','&']});
alert(result);//result就是笛卡尔积
二、js实现多重数组笛卡尔积
例子:
(function() {
dwn = function(a) {
document.writeln(a + "
")
};
//笛卡尔积
var Cartesian = function(a, b) {
var ret = [];
for (var i = 0; i < a.length; i++) {
for (var j = 0; j < b.length; j++) {
ret.push(ft(a[i], b[j]));
}
}
return ret;
}
var ft = function(a, b) {
if (! (a instanceof Array)) a = [a];
var ret = Array.call(null, a);
ret.push(b);
return ret;
}
//多个一起做笛卡尔积
multiCartesian = function(data) {
var len = data.length;
if (len == 0) return [];
else if (len == 1) return data[0];
else {
var r = data[0];
for (var i = 1; i < len; i++) {
r = Cartesian(r, data[i]);
}
return r;
}
}
})();
var data = [['a', 'b', 'c'], [1, 2, 3, 4], ['A', 'B'], ['#', '@', '+'], ['Mary', 'Terry', 'KYO']];
var r = multiCartesian(data);
for (var i = 0; i < r.length; i++) {
dwn("(" + r[i] + ")");
}
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
java 笛卡尔积 数组_在JS中笛卡尔积算法与多重数组笛卡尔积(详细教程)相关推荐
- php document.write,在JS中有关document.write()的用法(详细教程)
这篇文章主要介绍了JS 中document.write()的用法和清空的原因浅析,需要的朋友可以参考下 可能很多朋友都遇到过这样的情况,那就是使用document.write()函数向网页中写内容的时 ...
- ibatis查询结果返回数组_在ibatis中传递和返回自定义数组对象,在java中传递和返回oracle...
您必须从TypeHandler的自定义实例开始.我们更喜欢实现更简单的TypeHandlerCallback,但在这种情况下,我们需要访问底层的Connection. public class Arr ...
- java三目运算符嵌套_替代JS中的嵌套三元运算符
您的替代方案基本上是: 你不想做 那个 if / else A switch 与 if / else 合并 我试图提出一个合理的查找映射选项,但它很快就变得不合理了 . 我会去#1,它不是那么大: i ...
- javascript字典中添加数组_在javascript中合并两个字典数组
您可以使用 Array#map方法生成新数组(假设两个数组的顺序相同). var lat = [{key:"2017-09-20T11:51:32.000Z", value:50. ...
- java数组 js数组的长度_js中split()方法得到的数组长度问题
定义和用法 split() 方法用于把一个字符串分割成字符串数组. 语法 stringObject.split(separator,howmany) 参数 描述 separator 必需.字符串或正则 ...
- js数组获取index_通过事例重温一下 JS 中 常见的15 种数组操作(备忘清单),收藏...
数组是 JS 中广泛使用的数据结构.数组对象提供了大量有用的方法,如array. forEach().array.map()等来操作数组. 在实战中,我经常对数组可能的操作和相应采用哪个更好的方法不知 ...
- js中的字符串方法与数组方法总结
js中的字符串方法与数组方法总结 1.字符串方法 2.数组方法
- JS中根据指定值删除数组中的元素
JS中根据指定值删除数组中的元素 原生js 如果想删除数组,有一个函数 splice() ~~ 删除元素,并向数组添加新元素. splice是根据数组内的下标 也就是索引来 删除元素的比如: var ...
- JS中定义一个二维数组
JS中定义一个二维数组 方法一 var _TheArray = [["0-1","0-2"],["1-1","1-2"] ...
最新文章
- oracle sql 全是子查询查询速度太慢如何优化_如果面试官问你如何优化mysql分页查询,请把这篇文章甩给他!...
- pythontkinter控件单选框怎么判断是否被选中_Python GUI编程(Tkinter)Radiobutton单选框控件...
- 大漠插件 win10 绑定
- java链接mysql出问题_java连接MySQL出现问题
- codeforces 935E Fafa and Ancient Mathematics 语法树、动态规划
- python3生成随机数_python3实现随机数
- 手机Web 开发中图片img 如何等比例缩放
- 【Django 2021年最新版教程34】python unittest 对函数单元测试 覆盖率检测
- 安装西门子博图一直重启_安装西门子提示重启,重启后,继续提示重启,无限循环,着急解决谢谢...
- 计算机系新春祝福语,春节的祝福语
- GoLang之什么是workstealing(5)
- 3种好用的可视化图表工具分享,快进来看!
- 联想集团Q1:非PC业务增势喜人,共同打造第二增长极
- Kaggle泰坦尼克号船难--逻辑回归预测生存率
- MapGuide的系统架构
- 测试两个主机之间的连通性_网络连通性测试工具—PING
- 这样的测试简历,面试官都喜欢
- C++ | 动态分配内存 new和malloc的区别
- fm算法详解_FM算法原理分析与实践
- video-player的使用
热门文章
- html经典网页,经典网页设计:20个与众不同的国外HTML5网站_html/css_WEB-ITnose
- linux网页制作教程,linux:.htaccess文件使用教程
- 西瓜书南瓜书第五章随记
- ASP.NET多文件批量打包下载
- 企业如何处理网上百度知道的负面信息?
- 十代服务器芯片组,【十代处理器主板芯片组个人整理汇总一览】包含总结和分析...
- kotlin Unresolved reference报错解决记录
- Matlab/simulink MIL自动化测试工具使用说明
- (找规律)23,41,18,64,? 问号处填什么?
- 求教合泰平台RAM溢出问题