Guest User

Untitled

a guest
Jan 21st, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1.  
  2. Object.size = function(obj) {
  3. var size = 0, key;
  4. for (key in obj) {
  5. if (obj.hasOwnProperty(key)) size++;
  6. }
  7. return size;
  8. };
  9.  
  10. function randomResultInArray (obj) {
  11. return obj[Math.floor(Math.random()*obj.length)];
  12. }
  13.  
  14. function randomIndexInObject (obj) {
  15. return Math.floor( Math.random() * (Object.size(obj)-1) );
  16. }
  17.  
  18. function capitalise(string) {
  19. return string.charAt(0).toUpperCase() + string.slice(1);
  20. }
  21.  
  22. function print(msg) {
  23. document.write(msg + "<br>");
  24. }
  25.  
  26.  
  27.  
  28. /************* switch vs strategy *************/
  29.  
  30. /* switch (array) */
  31.  
  32. var fruitBasket = ["Oranges", "Apples", "Bananas", "Cherries"],
  33. fruitName = randomResultInArray(fruitBasket);
  34.  
  35. switch (fruitName) {
  36. case "Oranges":
  37. print("Oranges are £0.59 a pound.");
  38. break;
  39. case "Apples":
  40. print("Apples are £0.32 a pound.");
  41. break;
  42. case "Bananas":
  43. print("Bananas are £0.48 a pound.");
  44. break;
  45. case "Cherries":
  46. print("Cherries are £3.00 a pound.");
  47. break;
  48. }
  49.  
  50. /* strategy (obj) */
  51.  
  52. var stratFruitBasket = {
  53. oranges: "are £0.59 a pound.<br>",
  54. apples: "are £0.32 a pound.<br>",
  55. bananas: "are £0.48 a pound.<br>",
  56. cherries: "are £3.00 a pound.<br>"
  57. };
  58.  
  59. var i = 0,
  60. randIndex = randomIndexInObject(stratFruitBasket);
  61.  
  62. $.each( stratFruitBasket, function( propertyName, fruitName ) {
  63. if (i == randIndex) {
  64. print(capitalise(propertyName) + " " + fruitName);
  65. return false;
  66. }
  67. i++;
  68. });
  69.  
  70.  
  71.  
  72. /*
  73. var cheeses = {
  74. cheddar: {
  75. complements: 'pickle',
  76. washDownWith: 'milk'
  77. },
  78. stilton: {
  79. complements: 'beetroot',
  80. washDownWith: 'port',
  81. }
  82. };
  83.  
  84. $.each( cheeses, function( propertyName, cheese ) {
  85. $('<li>', {
  86. html: cheese.complements,
  87. id: propertyName
  88. }).appendTo( 'nav' );
  89. });
  90. */
Add Comment
Please, Sign In to add comment