Ich versuche, eine rekursive Funktion zum Erstellen eines Arrays in der Hälfte Spleiß, bis er nur Längen von 3 und 2, als alle diese fein säuberlich in einem Array platziert neue Arrays zu haben.JavaScript Array der Division
Ich glaube, ich brauche eine Möglichkeit zu messen, wie viele Arrays ich brauche, sie erstellen und sie dann in meiner aufgeteilt Arrays werfen? (Ich dachte Pow?).
Ich benutze halb und Runde, wie ich auf dem Papier experimentiert habe und das bedeutet, dass ich mit 2 und 3 enden werde, anstatt durch 3 zu teilen, da es manchmal einen Rest von 1 gibt (und ich plane es Verwenden Sie dasselbe Skript, um später mit diesen Daten eine Triangulation zu erstellen.
Aktuelle Code, (unvollständig, denn dies funktioniert, wenn Aussagen zusätzliche fortzusetzen hat erstellen).
var pointlist = [];
var pointCount = 666;
var generate = function(t, n) {
for (count = 0; count < n; count++) {
var point = {
x: (Math.random() * 1000),
y: (Math.random() * 1000)
};
t.push(point);
}
}
generate(pointlist, pointCount);
var divisions = [];
var divide = function(a) {
a.sort(function(a, b) {
return a.x - b.x
});
if (a.length > 3) {
b = a.splice(Math.round(a.length/2), a.length);
divisions.push(a, b);
if (a.length > 3) {
c = a.splice(Math.round(a.length/2), a.length);
d = b.splice(Math.round(b.length/2), b.length);
divisions = [];
divisions.push(a, c, b, d);
if (a.length > 3) {
e = a.splice(Math.round(a.length/2), a.length);
f = c.splice(Math.round(c.length/2), c.length);
g = b.splice(Math.round(b.length/2), b.length);
h = d.splice(Math.round(d.length/2), d.length);
divisions = [];
divisions.push(a, e, c, f, b, g, d, g);
}
}
}
};
divide(pointlist);
console.log(divisions.length + " arrays");
console.log(divisions[0].length + " first length");
console.log(divisions[1].length + " second length");
Was ist der Eingang und Ausgang sind Sie nach? (nicht der Algorithmus, Berechnung und so weiter, die Arrays, die Sie spleißen möchten) – Amit
Ich möchte Punktliste Array spleißen und fügen Sie sie in die Divisionen Array, halten sie in der Reihenfolge von der Sortierfunktion erstellt. – Chris
Spezifische und genaue Eingabe und Ausgabe Proben bitte, Beschreibung ist nicht hilfreich. – Amit