In diesem Artikel werden hauptsächlich der JS-Algorithmus für kartesische Produkte und die Implementierungsmethode für kartesische Produkte mit mehreren Arrays vorgestellt. Er analysiert die zugehörigen Betriebsfähigkeiten von JavaScript, um kartesische Produkte basierend auf Objekten oder Arrays in Form von Beispielen zu generieren dazu
Das Beispiel in diesem Artikel beschreibt den JS-Algorithmus für kartesische Produkte und die Implementierungsmethode des kartesischen Produkts mit mehreren Arrays. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
js-Implementierungscode des kartesischen Produktalgorithmus, generiert ein kartesisches Produkt basierend auf Objekten oder Arrays und stellt außerdem ein Javascript-Beispiel für ein kartesisches Produkt mit mehreren Arrays vor als Java-Implementierung, kartesischer Produktalgorithmus und Beispielcode.
1. JavaScript-Code für den kartesischen Produktalgorithmus
Beispiel: Generieren Sie ein kartesisches Produkt basierend auf einem Objekt oder Array.
//笛卡儿积组合 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; } } } }
Aufrufmethode:
var result = descartes({'aa':['a','b','c','d'],'bb':['$','%','^','&']}); alert(result);//result就是笛卡尔积
2. JS implementiert kartesisches Produkt mit mehreren Arrays
Beispiel:
<script> (function() { dwn = function(a) { document.writeln(a + "<br />") }; //笛卡尔积 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] + ")"); } </script>
Das Obige habe ich für alle zusammengestellt Ich hoffe, es wird in Zukunft für alle hilfreich sein.
Verwandte Artikel:
Detaillierte Einführung in die Verwendung von ref ($refs) in Vue.js
Detaillierte Interpretation von Vater- Sohnkommunikation in Vue
So implementieren Sie die numerische Tastaturkomponente mit Vue
So stellen Sie https mit Nginx + Node bereit
Das obige ist der detaillierte Inhalt vonKartesischer Produktalgorithmus und kartesisches Produkt mit mehreren Arrays in JS (ausführliches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!