Javacript Random Item Picker Array, met restricties

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn vraag
Hallo, ik ben vrij nieuw met Javascript en helemaal nieuw op dit forum, vergeef mijn onkunde. 8)7

Ik wil een automatische menu-planner maken met javascript. Hier in voor ik zelf de gerecht namen in die ik kan maken. Ik geef aan hoeveel keer per week ik vis/rood vlees/kip/vegetarisch ik wil eten. Tot dusver is mij gelukt. Nu wil ik ook dat hij niet twee keer een pasta gerecht kiest. (1x pasta met rood vlees, 1x pasta met vis)

Is het mogelijk om een attribuut, subcategorie of waarde toe te kennen aan een item binnen een array (bijvoorbeeld "pasta") dat en de picker te beperken dat hij daarbinnen dat niet meer dan 1x kiest.

Dit is wat ik nu heb:

<script>
var vis = [ 'Indiase Vis',
'Pasta Vongele',
'Visticks>',
'Gagrilde Gambas',
'Zeeduivel',
'Mosselen',
'Fish And Chips',
'Paella'];

function getRandomIndex(items) {
return Math.floor(Math.random() * items.length);
}

for (var i = 0; i < 3; i++) {
var removedItem = vis.splice(getRandomIndex(vis), 1);
document.writeln(removedItem)
}

var rood = ['Hamburger',
'Biefstuk',
'Chili Con Carne',
'Pasta Bolognese',
'Spare Ribs];

function getRandomIndex(items) {
return Math.floor(Math.random() * items.length);
}

for (var i = 0; i < 1; i++) {
var removedItem = rood.splice(getRandomIndex(rood), 1);
document.writeln(removedItem)
}

var kip = [ 'Wrap met Kip',
'Coque au Vin',
'Kipcorns',
'Kippenpootjes',
'Kip Madras',
'Kippensoep'];

function getRandomIndex(items) {
return Math.floor(Math.random() * items.length);
}

for (var i = 0; i < 2; i++) {
var removedItem = kip.splice(getRandomIndex(kip), 1);
document.writeln(removedItem)
}

var vega = ['Gado Gado<br />',
'Pasta Aubergine',
'Pasta Courgette',
'Vega Curry',
'Vega Hamburger',
'Vegetarische Salade'];

function getRandomIndex(items) {
return Math.floor(Math.random() * items.length);
}

for (var i = 0; i < 1; i++) {
var removedItem = vega.splice(getRandomIndex(vega), 1);
document.writeln(removedItem)
}
</script>

Ik hoop dat jullie mij kunnen helpen!

Alle reacties


Acties:
  • +1 Henk 'm!

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 23:38

orf

Misschien goed om met objecten te gaan werken binnen je arrays:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
var menu = [
    { 
      naam: "Pasta Aubergine",
      type: "pasta",
      soort: "vega"
    },
    { 
      naam: "Indiase Vis",
      type: "curry",
      soort: "vis"
    },
];


Ik ben niet echt een expert in typeringen van eten, dus maar even een type en een soort toegevoegd.

in je functie die random kiest, kun je dan kijken wat voor type en soort het is en daar tellers voor bij houden of andere restricties.

Je kunt de properties van de objecten aanspreken met [variabele].type. In de bovenstaande array kan dat zo:

JavaScript:
1
2
3
var item = menu[0];
var type = item.type;  // pasta
var soort = item.soort;  //vega


Hier kun je meer lezen over arrays met objecten: https://eloquentjavascript.net/04_data.html