hmm. sehe den sinn darin nicht so ganz..
String.split( char ); gibt doch schon nen Array zurück!? wofür nen Prototype?
und außerdem wäre es viel weniger ressourcenlastig, wenn du beim pushen nicht den array neu mittels split generierst.
ActionScript:
Array.prototype.textToArray = function( str, char)
{
var aPush:Array = str.split( char );
var i:Number = aPush.length;
aPush.reverse();
while( i-- ) this.push( aPush[i] );
}
// oder einfach über:
var meinString:String = 'Mein String';
var meinArray:Array = new Array();
meinArray = meinArray.concat( meinString.split( ' ' ) );
// oder wenn das array vorher leer war:
var myArray:Array = meinString.split( ' ' );
oder seh ich irgendwas falsch?
// edit:
dein Proto ( bzw. der von mir optimierte ) braucht beim selben String etwa 3 mal so lang, wie concat und 6mal so lang wie einfach nur mit split (also neuer array)
// edit:
einfach mal selber testen:
ActionScript:
// redners proto
Array.prototype.textToArray = function( str, char){
var a = str.split( char ).length;
while( a-- ) this.push( str.split( char )[a] );
this.reverse();
return this;
}
// redners proto von mir verbessert
Array.prototype.textToArr = function( str, char)
{
var aPush:Array = str.split( char );
var i:Number = aPush.length;
aPush.reverse();
while( i-- ) this.push( aPush[i] );
}
var str:String = 'Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. ';
// redners proto
var nStart1:Number = getTimer();
var arr1:Array = new Array();
arr1.textToArray( str, ' ' );
trace( 'time: ' + ( getTimer() - nStart1 ) );
// redners proto optimiert von pokepika
var nStart2:Number = getTimer();
var arr2:Array = new Array();
arr2.textToArr( str, ' ' );
trace( 'time: ' + ( getTimer() - nStart2 ) );
// concat Methode
var nStart3:Number = getTimer();
var arr3:Array = new Array();
arr3 = arr3.concat( str.split( ' ' ) );
trace( 'time: ' + ( getTimer() - nStart3 ) );
// neuer Array
var nStart4:Number = getTimer();
var arr4Array = str.split( ' ' );
trace( 'time: ' + ( getTimer() - nStart4 ) );
Ausgabe bei mir:
Code:
time: 1389
time: 10
time: 5
time: 4
Überzeugendes Argument oder?