Toon posts:

Waarde vergelijken met array

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben nu al een tijdje bezig met een opdracht voor school maar ik kom er niet uit...

De opdracht is;

In onderstaande programma is het de bedoeling dat de gebruiker een nederlands woord intypt, waarna de computer met het spaanse equivalent komt. Aan jullie om dit programma af te maken.

HTML:
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
<html>
<head>
<title>Woordenboek</title>
<script>

var ned_lijst = new Array("bier", "wijn", "brood", "kaas", "boter")
var sp_lijst = new Array("cerveza", "vino", "pan", "queso", "mantequilla")

function equivalent() {
// schrijf hier je code

} // einde equivalent
</script>
</head>
<body onload="javascript:document.mijnForm.txtNed.focus()">
<h3>Woordenboek Nederlands - Spaans</h3>
<form name="mijnForm">
Nederlands woord   <input type="text" name="txtNed"
value="" size="45" onfocus="javaScript:this.form.reset()"><br>
Spaanse equivalent   <input type="text" name="txtSpaans"
value="" size="45" onfocus="blur()"><br>
<input type="button" value="zoek op!" onclick="equivalent()">
</form>
</body>
</html>


Het is dus de bedoeling dat wanneer je op "zoek op!" drukt dat de waarde van txtNed wordt vergeleken met de array ned_lijst... nu krijg ik dit niet voor elkaar... hij moet de array waarde (0t/m4) eruit halen... weet iemand hoe je dat doet?

[ Voor 22% gewijzigd door Verwijderd op 10-01-2005 14:08 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

:D ha ha ha :D

1. je kan je code beter tussen [plain]
HTML:
1
[/] tags zetten ipv een tabel
2. Aan jullie om dit programma af te maken


Als je nou eens aangeeft waar je zelf tegenaan liep...

[ Voor 13% gewijzigd door BtM909 op 10-01-2005 14:03 ]

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.


Verwijderd

Topicstarter
Ok.. ik wist niet hoe ik dat deed (in html code zetten)...

Maar waar ik tegen aan liep... ik kan wel het volgende doen;

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function equivalent() {

if(document.mijnForm.txtNed.value == ned_lijst[0]) {
        document.mijnForm.txtSpaans.value = "cerveza";
        }
if(document.mijnForm.txtNed.value == ned_lijst[1]){
        document.mijnForm.txtSpaans.value = "vino";
        }
if(document.mijnForm.txtNed.value == ned_lijst[2]){
        document.mijnForm.txtSpaans.value = "pan";
        }
if(document.mijnForm.txtNed.value == ned_lijst[3]){
        document.mijnForm.txtSpaans.value = "queso";
        }
if(document.mijnForm.txtNed.value == ned_lijst[4]){
        document.mijnForm.txtSpaans.value = "mantequilla";
        }

    }


Dan werkt het ook wel, maar ik moet dit toch gewoon in 1 if kunnen zetten of niet soms?

  • Thralas
  • Registratie: December 2002
  • Laatst online: 09:41
Nu spreek ik geen javascript, alleen PHP, maar ik zou gewoon de index van het ingevoerde woord in de NL array opzoeken, en dan het woord met dezelfde index uit de Spaanse halen?

Verwijderd

Topicstarter
ja dat is dus ook mijn idee... alleen hoe?

Nu heb ik ff de hulp van een vriend ingeschakeld en we zijn al verder met het denk werk...

we hebben nu;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script>

    var ned_lijst = new Array("bier", "wijn", "brood", "kaas", "boter")
    var sp_lijst = new Array("cerveza", "vino", "pan", "queso", "mantequilla")

    function equivalent() {

    i=0;
    for (i > 4; i++) { 
        if (document.mijnForm.txtNed.value == ned_lijst[i]) { 
            document.mijnForm.txtSpaans.value = sp_lijst[i];
        } 
        else {
        document.mijnForm.txtSpaans.value = "onbekend";
        }
    }

    }
    </script>


hij zou nu moeten blijven controleren tot hij de juiste waarde heeft gevonden.. alleen nu geeft hij "fout op pagina" aan...

weet iemand hoe of wat?

[ Voor 25% gewijzigd door Pelle op 10-01-2005 15:11 . Reden: code tags ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

1. Check de juiste notatie van een for-loop
2. Ga niet fixed 4 opgeven, maar doe dat ook met een variabele (die de lengte van de array ophaalt)
3. Doe een check of beide arrays even lang zijn, om inconsisenties te voorkomen
4. Je moet breaken, omdat je nu doorloopt zal uiteindelijk het veld 'onbekend' worden

Persoonlijk zou ik het iets anders aanpakken, maar heb ff geen tijd om het in elkaar te klussen :)

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.


Verwijderd

Topicstarter
Ok ik heb het al voor elkaar :D

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>

    var ned_lijst = new Array("bier", "wijn", "brood", "kaas", "boter")
    var sp_lijst = new Array("cerveza", "vino", "pan", "queso", "mantequilla")

    function equivalent() {

    for (var i=0; i < ned_lijst.length; i++) { 
        if (document.mijnForm.txtNed.value == ned_lijst[i]) { 
            document.mijnForm.txtSpaans.value = sp_lijst[i];
        }
    }

    }
    </script>


dat is het... alleen met een ELSE erbij werkt hij niet meer... dat vogel ik nog wel ff uit!

iig bedankt!!

[ Voor 15% gewijzigd door Pelle op 10-01-2005 15:12 . Reden: code tags ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

1. Overzicht van UBB-codes (dus [plain]
JavaScript:
1
[/] ;))
2. Zet als je een item hebt gevonden, een globale var flag. Kan je aan 't eind checken of die flag false is (niks gevonden) en alsnog iets weergeven.

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.


  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 10:47
Wat je kan doen is een ?multidimensionele? array maken met daarin het nederlandse woord én de spaanse vertaling. Nu kan je door deze array heenlopen en dan controleren of de ingevoerde waarde overeenkomt met een waarde uit de array.

Uit het bloten hoofd (Niet getest)

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
    var opArray = new Array();
        opArray['bier'] == "cerveza";
        opArray['wijn'] == "vino";
        opArray['brood'] == "pan";
        opArray['kaas'] == "queso";
        opArray['boter'] == "mantequilla";

    function equivalent(){
        var currVal = document.forms['woordenboek'].elements['txtNed'].value
        for(var label in opArray){
            if(currVal == opArray[label])
                document.forms['woordenboek'].elements['txtSpaans'].value = label;
        }
    }
</script>

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Btw. zeg even tegen de maker van de opdracht dat hij/zij ook wel een opfriscursusje javascript nodig heeft ;)
Ik tel zo snel toch minimaal 5 punten die niet zo netjes zijn of zelfs gewoonweg fout.

[ Voor 29% gewijzigd door Annie op 10-01-2005 22:27 ]

Today's subliminal thought is:


Verwijderd

kleautviool schreef op maandag 10 januari 2005 @ 15:47:
Wat je kan doen is een ?multidimensionele? array maken met daarin het nederlandse woord én de spaanse vertaling.
Java:
1
2
3
4
5
6
7
8
<script type="text/javascript">
    var opArray = new Array();
        opArray['bier'] == "cerveza";
        opArray['wijn'] == "vino";
        opArray['brood'] == "pan";
        opArray['kaas'] == "queso";
        opArray['boter'] == "mantequilla";
</script>
Dit is geen 'multidimensionale' array, maar een associatieve (strings als index).

Bovendien gebruik je een dubbele = bij het toekennen...

  • kleautviool
  • Registratie: Mei 2003
  • Laatst online: 10:47
Wist het niet zeker. Vandaar die vraagtekens ;)

En die dubbele = is een typo :X
Pagina: 1