Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. const file = [
  2. {
  3. "seatNumber": "1A",
  4. "price": "£19.99",
  5. "available": true,
  6. "disabilityAccessible": true
  7. },
  8. {
  9. "seatNumber": "2A",
  10. "price": "£19.99",
  11. "available": false,
  12. "disabilityAccessible": false
  13. },
  14. {
  15. "seatNumber": "3A",
  16. "price": "£19.99",
  17. "available": false,
  18. "disabilityAccessible": false
  19. },
  20. {
  21. "seatNumber": "4A",
  22. "price": "£19.99",
  23. "available": true,
  24. "disabilityAccessible": false
  25. },
  26. {
  27. "seatNumber": "5A",
  28. "price": "£19.99",
  29. "available": false,
  30. "disabilityAccessible": false
  31. },
  32. {
  33. "seatNumber": "1B",
  34. "price": "£12.99",
  35. "available": true,
  36. "disabilityAccessible": true
  37. },
  38. {
  39. "seatNumber": "2B",
  40. "price": "£12.99",
  41. "available": false,
  42. "disabilityAccessible": false
  43. },
  44. {
  45. "seatNumber": "3B",
  46. "price": "£12.99",
  47. "available": false,
  48. "disabilityAccessible": false
  49. },
  50. {
  51. "seatNumber": "4B",
  52. "price": "£12.99",
  53. "available": false,
  54. "disabilityAccessible": false
  55. },
  56. {
  57. "seatNumber": "5B",
  58. "price": "£12.99",
  59. "available": true,
  60. "disabilityAccessible": false
  61. },
  62. {
  63. "seatNumber": "1C",
  64. "price": "£12.99",
  65. "available": true,
  66. "disabilityAccessible": true
  67. },
  68. {
  69. "seatNumber": "2C",
  70. "price": "£12.99",
  71. "available": true,
  72. "disabilityAccessible": false
  73. },
  74. {
  75. "seatNumber": "3C",
  76. "price": "£12.99",
  77. "available": true,
  78. "disabilityAccessible": false
  79. },
  80. {
  81. "seatNumber": "4C",
  82. "price": "£12.99",
  83. "available": true,
  84. "disabilityAccessible": false
  85. },
  86. {
  87. "seatNumber": "5C",
  88. "price": "£12.99",
  89. "available": true,
  90. "disabilityAccessible": false
  91. },
  92. {
  93. "seatNumber": "1D",
  94. "price": "£12.99",
  95. "available": true,
  96. "disabilityAccessible": true
  97. },
  98. {
  99. "seatNumber": "2D",
  100. "price": "£12.99",
  101. "available": false,
  102. "disabilityAccessible": false
  103. },
  104. {
  105. "seatNumber": "3D",
  106. "price": "£12.99",
  107. "available": true,
  108. "disabilityAccessible": false
  109. },
  110. {
  111. "seatNumber": "4D",
  112. "price": "£12.99",
  113. "available": true,
  114. "disabilityAccessible": false
  115. },
  116. {
  117. "seatNumber": "5D",
  118. "price": "£12.99",
  119. "available": true,
  120. "disabilityAccessible": false
  121. },
  122. {
  123. "seatNumber": "1E",
  124. "price": "£8.99",
  125. "available": true,
  126. "disabilityAccessible": true
  127. },
  128. {
  129. "seatNumber": "2E",
  130. "price": "£8.99",
  131. "available": true,
  132. "disabilityAccessible": false
  133. },
  134. {
  135. "seatNumber": "3E",
  136. "price": "£8.99",
  137. "available": false,
  138. "disabilityAccessible": false
  139. },
  140. {
  141. "seatNumber": "4E",
  142. "price": "£8.99",
  143. "available": true,
  144. "disabilityAccessible": false
  145. },
  146. {
  147. "seatNumber": "5E",
  148. "price": "£8.99",
  149. "available": false,
  150. "disabilityAccessible": false
  151. }
  152. ]
  153.  
  154. const seats = file.filter( seat => seat.price.replace(/[^0-9.-]+/g,"") == Math.min(...file.map(function ( seat ) { return Number(seat.price.replace(/[^0-9.-]+/g,"")) }) ) ).map(seat => seat.seatNumber);
  155. console.log(seats)
  156.  
  157. O(10) ~= 211
  158. O(100) ~= 20,102
  159. O(500) ~= 500,005
  160.  
  161. function bestSeats(seats) {
  162. var min = Infinity, minVal;
  163. const result = [];
  164. for (const seat of seats) {
  165. const price = Number(seat.price.slice(1));
  166. if (price < min) {
  167. min = price;
  168. minVal = seat.price;
  169. }
  170. }
  171. for (const seat of seats) {
  172. if (seat.price === minVal) { result.push(seat.seatNumber) }
  173. }
  174. return result;
  175. }
  176.  
  177. function bestSeats(seats) {
  178. const price2Num = seat => Number(seat.price.slice(1));
  179. const min = (min, seat) => price2Num(seat) < min ? price2Num(seat) : min;
  180. const minPrice = "$" + seats.reduce(min, Infinity);
  181. return seats.filter(seat => seat.price === minPrice).map(seat => seat.seatNumber);
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement