Array maken van anderearray[i]

Status
Niet open voor verdere reacties.

JeroenE

Terugkerende gebruiker
Lid geworden
20 mrt 2005
Berichten
1.950
Hallo,

Ik ben aan het uitzoeken hoe ik door middel van een loop van ieder item binnen de array die ik doorloop een nieuwe array kan maken.
Op zich niet zo'n probleem zou je denken, was het niet dat ik eerst de spaties uit die items moet verwijderen, wat me tot hier toe lukt, maar verder wil het niet. Hier is wat ik al heb, alleen lukt het niet van iedere van spaties ontdaan item een neiuwe array te maken.

PHP:
var my_letter, the_letter = "";
var letter = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
var A = new Array("Kies","A b", "C d","E f","G h");
var B = new Array("Kies");
var C = new Array("Kies");
var D = new Array("Kies");
var E = new Array("Kies");
var F = new Array("Kies");
.
.
.
.
var Z = new Array("Kies");
for (var a = 0; a < letter.length; a++) {
	for (var b = 1; b < eval(letter[a]).length; b++) {
		my_letter = eval(letter[a])[b].split(" ");
		for (var c = 0; c < my_letter.length; c++) {
			the_letter += my_letter[c];
		};
		the_letter = new Array(); // hier loopt al het mis als ik "eval(the_letter) = new Array();" zet
	};
};
Ab[0] = "tekst"; // hier loopt het mis als ik hierboven "the_letter = new Array();" gebruik
Hoe zou ik dit kunnen oplossen?

Greetz : Jer:cool:en.
 
Laatst bewerkt:
Ik kan in array a t/m z niet zonder spaties werken omdat die in een keuzelijst komen te staan. Zou geen zicht zijn hé. :D

Greetz : Jer:cool:en.
 
HTML:
<script language="JavaScript">
 var letter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
 var A = new Array('Kies','A b','C d','E f','G h');
 var B = new Array('Kies','A b','C d','E f','G h');
 var C = new Array('Kies','A b','C d','E f','G h');

 for (var i = 0; i < 3; i++) {
  var ff = eval(letter[i]).join(',').replace(/ /g,'').split(',');
  eval(letter[i] + ' = ff');
  };

 document.writeln(A + '<br>');
 document.writeln(B + '<br>');
 document.writeln(C + '<br>');
</script>
var ff = eval(letter).join(',').replace(/ /g,'').split(',');

var ff variabele
eval(letter) zorgt ervoor dat A gebruikt wordt (en B, C...)
.join(',') maakt van de array een string met komma's ertussen
.replace(/ /g,'') vervangt alle g spaties / / door lege strings ''
.split(',') splitst de string weer op de komma's in een array

eval(letter + ' = ff'); wijst de waarde van ff weer toe aan A (en B, C...)


Vr.Gr. Egel.
 
Laatst bewerkt:
Dank je wel voor een nieuwe les in geavanceerde javascript.

Ik heb me echter slecht uitgedrukt.
Wat ik bedoel, is dat Ab een nieuwe array wordt, Cd ook, Ef ook, ......, en dat tot we de array A doorlopen hebben, om dan over te gaan naar array B.
Ieder appart item van iedere array (uitgezonderd het eerste item, vandaar b = 1) wordt dus een nieuwe array.

Greetz : Jer:cool:en.
 
1! Ik las de letter el :o Ze moeten er weer courier new van maken! :D Bedoel je zo?:
HTML:
<script language="JavaScript">
 var letter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
 var A = new Array('Kies','A b','C d','E f','G h');
 var B = new Array('Kies');
 var C = new Array('Kies');

 for (var i = 0; i < 3; i++) {
  var ff = eval(letter[i]);
  for (var j = 1; j < ff.length; j++) {
   ff[j] = ff[j].replace(/ /g,'');
   eval('var ' + ff[j] + ' = new Array()');
   };
  };

 Ab[0] = 'Tekst';

 alert(Ab); // !: Tekst
</script>
Het zit 'm dan in: eval('var ' + ff[j] + ' = new Array()');

Dat zou in jou script eval("var " + the_letter + " = new Array();"); worden.


Vr.Gr. Egel.
 
Hey Egel,

Dat moet inderdaad weer veranderd worden, die 1 en l trekken teveel op elkaar.

Je hebt weer eens de perfecte oplossing gegeven. :thumb:
Wat die replace en join betreft, dat zijn twee dingen die je me net geleerd hebt, want ik wist daar zelfs het bestaan niet van.
Zo zullen er wel nog heel wat zaken zijn.
Misschien kan ik met de Regular Expressions beginnen, of zijn er zaken die ik op mijn niveautje beter eerst leer?

Greetz : Jer:cool:en.
 
JeroenE zei:
Wat die replace en join betreft, dat zijn twee dingen die je me net geleerd hebt, want ik wist daar zelfs het bestaan niet van.
Zo zullen er wel nog heel wat zaken zijn.
Die zaken vind je hier: http://javascript-reference.info/

Ze gebruiken daar assert(); om uit te leggen, wat daarbij tussen haakjes staat is waar (true), als:
var n = 3; n++; assert(n == 4);
JeroenE zei:
Misschien kan ik met de Regular Expressions beginnen, of zijn er zaken die ik op mijn niveautje beter eerst leer?
De 'tje' kan je ondertussen wel weglaten. :cool:

Ook van Visibone: http://www.visibone.com/regular-expressions/

Reguliere uitdrukkingen zijn wat lastig in 't begin omdat ze erg compact zijn en speciale tekens bevatten. Maar bij formuliercontrole en tekst bewerken zijn ze handig:
var s = '1a 678-9'; s = s.replace(/\D/g,''); assert(s == '16789');
filtert in 1x alle niet cijfers \D er uit.

Als vervanger van replace kan je ook split en join combineren:
var s = 'woonhuis'; s = s.split('huis').join('boot'); assert(s == 'woonboot');


Vr.Gr. Egel.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan