hier zou een slimme opmerking kunnen staan
maar die staat er niet
1
| var key = reeks.indexOf('ef'); |
en voor browsers die jaren achterlopen dit toevoegen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var l = this.length, i = 0; if (fromIndex) { i = fromIndex; if (i < 0) { i += l; if (i < 0) i = 0; } } while (i < l) { if (this[i] === searchElement) return i; i++; } return -1; } } |
Intentionally left blank
heb nu deze functie gemaakt:
1
2
3
4
| function verwijderEntryUitArray(reeks, waarde){ var key = reeks.indexOf(waarde); reeks.splice(key,1); } |
hier zou een slimme opmerking kunnen staan
maar die staat er niet
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
indexOf voor array's is meen ik een javascript 1.5 extension. Iig Mozilla ondersteund het, en misschien Opera en Safari ook wel. IE is zoals je weet een bejaard paard en ondersteund het dus niethobbeldebobbel schreef op woensdag 31 januari 2007 @ 13:56:
en achterlopen in hoeveel jaren is dat dan?
Intentionally left blank
wat nu als ik zo'n array heb:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| reeks = new Array('a',new Array('1','2','3'),'c','d','e','f','g','h'); function verwijderEntryUitArray(freeks, waarde){ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement, fromIndex) { var l = this.length, i = 0; if (fromIndex) { i = fromIndex; if (i < 0) { i += l; if (i < 0) i = 0; } } while (i < l) { if (this[i] === searchElement) return i; i++; } return -1; } } var key = freeks.indexOf(waarde); freeks.splice(key,1); } |
en als ik dan over de reeks de verwijderEntryUitArray() haal dan krijg ik een heel raar resultaat zoals te zien op: deze url
het lijkt alsof hij een deel van de functie eraan als entry in de array plakt....
[ Voor 27% gewijzigd door hobbeldebobbel op 31-01-2007 22:05 ]
hier zou een slimme opmerking kunnen staan
maar die staat er niet
Voorbeeldje:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| function verwijderEntryUitArray(freeks, waarde) { var i = 0; while (i < freeks.length) { if (freeks[i] instanceof Array) { verwijderEntryUitArray(freeks[i], waarde); } else if (freeks[i] == waarde) { freeks.splice(i, 1); i--; } i++; } } |
Deze verwijderd trouwens alle instances van 'waarde'
Intentionally left blank
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Array ( [nieuweboot1] => Array ( [discipline] => kb [instructeur] => I_3 [0] => 3 [1] => 6 [2] => 8 [3] => 4 [4] => 7 [5] => 9 ) [nieuweboot2] => Array ( [instructeur] => 0 ) ) |
[ Voor 30% gewijzigd door hobbeldebobbel op 31-01-2007 22:56 ]
hier zou een slimme opmerking kunnen staan
maar die staat er niet
pfft, je maakt het ook wel steeds lastiger hè?hobbeldebobbel schreef op woensdag 31 januari 2007 @ 22:48:
okay.. thanks deze werkt wel....maar dan moeten de keys's getallen zijn. Ik heb net mn hele systeem gebouwd op associatieve array's (klopt dat wat ik zeg?) hij ziet er namelijk zo uit:
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Array ( [nieuweboot1] => Array ( [discipline] => kb [instructeur] => I_3 [0] => 3 [1] => 6 [2] => 8 [3] => 4 [4] => 7 [5] => 9 ) [nieuweboot2] => Array ( [instructeur] => 0 ) )
Maar ten eerste zou je dan geen array moeten gebruiken maar een Object. Ten tweede kan je met for in door alle properties van je object heenlopen. Uiteraard kan je ook geen splice gebruiken dan maar zal je een delete van de betreffende property moeten doen.
Intentionally left blank
hmm tja daar heb ik een handje van... het leek eerst zo makkelijk, maar het word steeds uitgebreider en deze dingen die ik nu heb die had ik niet kunnen bedenken zeg maar...pfft, je maakt het ook wel steeds lastiger hè?
je geeft dus het advies om een object te maken. Ok ik snapte dus net de array's enzo en dacht goed, bedoel aardig, kon schrijven..... een object dus...
wat is een object? en hoe maak ik die dan?
ik lees ergens op internet dat associatieve array's ongeveer hetzelfde zijn als objecten.... maar ik snap het even niet..
afgezien van dat object gebeuren, kan ik er dan even niet makkelijker het volgende van maken:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Array ( [nieuweboot1] => Array ( [discipline] => kb [instructeur] => I_3 [cursisten] => Array ( [0] => 3 [1] => 6 [2] => 8 [3] => 4 [4] => 7 [5] => 9 ) ) [nieuweboot2] => Array ( [instructeur] => 0 ) ) |
maar dan word het inderdaad lastig om dat als bootid35 uit te lezen... met een for loop
hmmm
//edit: deze link is zeer interessant. Het komt er opneer dat je een object maakt en hieraan propertys geeft:
1
2
3
4
| bootindeling = new Object() bootindeling.instructeur = 'instructeurs 1' bootindeling.discipline = 'kb' bootindeling.cursisten = new Array(1,4,5,6,3,2) |
klopt dit een beetje?
maar hoe kan ik dan meerdere boten maken?
[ Voor 134% gewijzigd door hobbeldebobbel op 01-02-2007 23:18 ]
hier zou een slimme opmerking kunnen staan
maar die staat er niet