Jump to content

jonnyenglish89

Members
  • Posts

    16
  • Joined

  • Last visited

Everything posted by jonnyenglish89

  1. Great, I'll make the changes. thank you for the advice!
  2. Hi, I’d appreciate some help with my homework. I’ve got to display each student’s name and the results for each of their modules using vanilla JavaScript. the following code displays the values I’m after, but I’d really like to know how to improve it. var data = { "students":[ { "name":"Eric Smith", "modules":{ "1":{ "id":"COMP40003", "name":"Software Development", "result":80 }, "2":{ "id":"COMP40001", "name":"Digital technologies", "result":71 }, "3":{ "id":"COMP40004", "name":"Web Development", "result":47 }, "4":{ "id":"COMP40002", "name":"Networking Concepts and Cyber Security", "result":0 } } }, { "name":"Bob", "modules":{ "1":{ "id":"COMP40003", "name":"Software Development", "result":80 }, "2":{ "id":"COMP40001", "name":"Digital technologies", "result":71 }, "3":{ "id":"COMP40004", "name":"Web Development", "result":47 }, "4":{ "id":"COMP40002", "name":"Networking Concepts and Cyber Security", "result":0 } } } ] }; var json = JSON.parse(JSON.stringify(data)); for (var key in json["students"]) { console.log(json["students"][key]["name"]); console.log('-------------------'); for (var modkey in json["students"][key]["modules"]) { console.log(json["students"][key]["modules"][modkey]["name"] + " " + json["students"][key]["modules"][modkey]["result"]); console.log('-------------------'); }; }; Thanks
  3. Thanks for the translation I could do with some help with 5b. I can remove the first instance of of the selected letter within the function selectNextNumber with unset($bestOrder[$x]) and return the updated $bestOrder array and $numberToPick is that a good way to do it or would you recommend somethingelse?
  4. Hi guys, I’d appreciate a little guidance but I’m gonna struggle to explain what the problem is first… so apologies in advance. $drawOrder is an array of 1 to 10 letters that are drawn at random Array ( [101] => C [102] => F [103] => D [104] => J [105] => B [106] => H [107] => I [108] => G [109] => E [110] => A ) $bestOrder contains the same values as $drawOrder but the letters are given a priority. Array ( [0] => A [1] => B [2] => C [3] => D [4] => E [5] => F [6] => G [7] => H [8] => I [9] => J ) $bestPossibleOrder – I want this to contain the closest order possible to $bestOrder based on the draw order and 3 letter draw limit Array ( [101] => C [103] => D [105] => B [102] => F [106] => H [108] => G [109] => E [110] => A [107] => I [104] => J ) $availableLetters contains 3 letters that are drawn according to $drawOrder. Array ( [101] => C [102] => F [103] => D ) add “[101] => C” to $bestPossibleOrder array remove “[2] => C” from the $bestOrder array because the letters are not always unique add “[104] => J “ to $availableLetters because it is next in the draw order. Array ( [102] => F [103] => D [104] => J ) add “[103] => D” to my $bestPossibleOrder array remove “[103] => D” from the $bestOrder array because the letters are not always unique add “[102] => B“ to $availableLetters because it is next in the draw order. Array ( [102] => F [104] => J [102] => B ) Repeat the process until all letters are in the $bestPossibleOrder array Array ( [101] => C [103] => D [105] => B [102] => F [106] => H [108] => G [109] => E [110] => A [107] => I [104] => J ) I’ve attached what I’ve written so far but I’m not sure if it’s a good approach <?php $BR = "<br />"; echo "best order:" . $BR; $bestOrder = array("A","B","C","D","E","F","G","H","I","J"); print ("<pre>" . print_r($bestOrder, true) . "</pre>"); echo "draw order:" . $BR; $drawOrder = shuffle_assoc($bestOrder); $drawOrder = array_combine(range(101,(count($bestOrder)+100)),$drawOrder);// $drawOrder array keys have to start from 101 print ("<pre>" . print_r($drawOrder, true) . "</pre>"); echo "available Letters (FIRST DRAW):" . $BR; $availableLetters = array_slice($drawOrder, 0, 3,true); print ("<pre>" . print_r($availableLetters, true) . "</pre>"); $numberToPick = selectNextNumber($bestOrder,$availableLetters); echo "The key with the closest letter to best order is [" . $numberToPick . "]"; function selectNextNumber($bestOrder,$availableLetters){ for ($x = 0; $x <= count($bestOrder); $x++){ $numberToPick = array_search($bestOrder[$x], $availableLetters); if ($numberToPick !== false) { //unset($bestOrder[$x]); //print ("<pre>" . print_r($bestOrder, true) . "</pre>"); return $numberToPick; } } } function shuffle_assoc($list) { if (!is_array($list)) return $list; $keys = array_keys($list); shuffle($keys); $random = array(); foreach ($keys as $key) { $random[$key] = $list[$key]; } return $random; }
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.