Ich versuche, eine Funktion zu erstellen, die die Bearbeitung von Arrays können ...Logic Manipulation von Arrays, um einen Index zu entfernen
var myArray = [2, 1, 1, 1, 1];
jetzt habe ich es so
[3, sein möchten 1 , 1, 1]
jetzt meine Funktion akzeptiert drei Parameter
- ArrayToProcess - gut sein das Array, das
- indexTarget verarbeitet werden - das ist der ausgewählte Wert, der von Index definiert ist
- morphToValue - das ist der Wert, den ich der ausgewählte Wert werden wollen.
gut mein Ziel ist es, die indexTarget zu akzeptieren, die zum Beispiel
myFunction(myArray,0,3); //myArray is [2, 1, 1, 1, 1]
wie man sehen kann ich meine Funktion Schleife über die myArray
will so wird es versuchen, Zahlen im Array hinzuzufügen, bis es wird erreichen Sie die morphToValue
so wurde es [3, 1, 1, 1], es reinigt die auf dem ersten Index und 1
auf dem zweiten Index zu 3
zu gewinnen. Es wird nur auch minus eine beliebige Zahl auf dem Array, wenn es fügt sich zu sehr auf die Überschreitung auf dem morphToValue
ein weiteres Beispiel so sein werde ich das Array wollen
var myArray = [2, 1, 1 , 1, 1];
wie diese
[2, 1, 3];
indem Anruf myFunction wie diese
myFunction(myArray,2,3);
sein, wie kann ich machen dies möglich? Ich mag auch Iterieren am Anfang wieder der Anordnung fortzusetzen, wenn ich indexTarget im letzten Index des Arrays festgelegt werden, so dass es wie dieses
var wäre myArray = [2, 1, 1, 1, 1 ];
wird es
[1, 1, 1, 3]; //when I invoke myFunction(myArray,4,3);
werden Sie einen Kommentar setzen, wenn Sie etwas nicht verstehen ....
das ist, was ich bisher http://jsfiddle.net/eESNj/
var myArray = ['2', '1', '1', '1', '1'];
indexPurge(myArray, 0, 3);
function indexPurge(haystack, indexTarget, morphToValue) {
var toIntHaystack = [];
for (var i = 0; i < haystack.length; i++) {
toIntHaystack.push(parseInt(haystack[i]));
}
console.log(toIntHaystack); //before
var i = 0;
var purgedValue = 0;
do {
console.log(i + ' - ' + toIntHaystack[i]);
purgedValue += toIntHaystack[i];
toIntHaystack.splice(i, 1);
if (purgedValue >= morphToValue) {
break;
}
i++;
} while (i < toIntHaystack.length);
toIntHaystack.splice(indexTarget, 0, morphToValue); //after
console.log(toIntHaystack);
}
Bitte zeigen Sie, was Sie wir sind, dann versucht haben, nicht hier, um Ihre Arbeit zu tun haben wil Sie. – Barmar
@Barmar Ich hatte meine Post neu bearbeitet Ich legte es auf eine Geige http://jsfiddle.net/eESNj/ –
Dann dies: 'myFunction (myArray, 0,3); // myArray ist [2, 1, 1, 1, 1] 'sollte es so sein? myFunction (myArray, 0,2); // myArray ist [2, 1, 1, 1, 1] ' – aIKid