Advertisement
aluin

Exam-2907-task03-BiggestTableRow

Jul 30th, 2014
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.81 KB | None | 0 0
  1. function solve(input) {
  2. var sum = 0;
  3. var maxSum = Number.MIN_VALUE-1;
  4. var finalValueOne = '';
  5. var finalValueTwo = '';
  6. var finalValueThree = '';
  7. var output = '';
  8. var finalValues = [];
  9.  
  10. var arr = [];
  11. for (var i = 2; i < input.length-1; i++) {
  12. var strRow = input[i].split(/<(\w+)>([\W\w]+)<\/\w+>/g).filter(Boolean);
  13. var arr = strRow[1].split(/<(\w+)>([\W\w]+)<\/\w+>/g).filter(Boolean);
  14. var newArr = arr[1].split(/<(\w+)>([\W\w]+)<\/\w+>/g).filter(String);
  15. var values = newArr.splice(2);
  16. var newValues = values[0].split(/<\/\w+><(\w+)>/g);
  17. var newValues2 = values[1].split(/<(\w+)>/g).filter(Boolean);
  18. var valueOne = newValues[0];
  19. var valueTwo = newValues[2];
  20. var valueThree = newValues2[1];
  21.  
  22. var v1 = parseFloat(valueOne);
  23. var v2 = parseFloat(valueTwo);
  24. var v3 = parseFloat(valueThree);
  25.  
  26. if (isNaN(v1)) {
  27. v1 = 0;
  28. }
  29. if (isNaN(v2)) {
  30. v2= 0;
  31. }
  32. if (isNaN(v3)) {
  33. v3 = 0;
  34. }
  35. sum = v1 + v2 + v3;
  36.  
  37. if (sum > maxSum) {
  38. maxSum = sum;
  39. finalValueOne = valueOne;
  40. finalValueTwo = valueTwo;
  41. finalValueThree = valueThree;
  42. }
  43. }
  44.  
  45. finalValues.push(finalValueOne);
  46. finalValues.push(finalValueTwo);
  47. finalValues.push(finalValueThree);
  48. var final = [];
  49.  
  50. for (var i = 0; i < finalValues.length; i++) {
  51. if (finalValues[i] !== '-') {
  52. final.push(finalValues[i]);
  53. }
  54. }
  55.  
  56. //output
  57.  
  58. final.join(' + ');
  59.  
  60. if (final.length === 0) {
  61. output = 'no data';
  62. } else {
  63. var result = final.join(' + ');
  64. output = maxSum + ' = '+ final.join(' + ');
  65. }
  66. return output;
  67. }
  68.  
  69.  
  70.  
  71. console.log(solve(['<table>',
  72. '<tr><th>Town</th><th>Store1</th><th>Store2</th><th>Store3</th></tr>',
  73. '<tr><td>Sofia</td><td>26.2</td><td>8.20</td><td>-</td></tr>',
  74. '<tr><td>Varna</td><td>11.2</td><td>18.00</td><td>36.10</td></tr>',
  75. '<tr><td>Plovdiv</td><td>17.2</td><td>12.3</td><td>6.4</td></tr>',
  76. '<tr><td>Bourgas</td><td>-</td><td>24.3</td><td>-</td></tr>',
  77. '</table>']))
  78.  
  79. console.log(solve(['<table>',
  80. '<tr><th>Town</th><th>Store1</th><th>Store2</th><th>Store3</th></tr>',
  81. '<tr><td>Sofia</td><td>-</td><td>-</td><td>-</td></tr>',
  82. '</table>'
  83. ]))
  84.  
  85. console.log(solve(['<table>',
  86. '<tr><th>Town</th><th>Store1</th><th>Store2</th><th>Store3</th></tr>',
  87. '<tr><td>Sofia</td><td>12850</td><td>-560</td><td>20833</td></tr>',
  88. '<tr><td>Rousse</td><td>-</td><td>50000.0</td><td>-</td></tr>',
  89. '<tr><td>Bourgas</td><td>25000</td><td>25000</td><td>-</td></tr>',
  90. '</table>'
  91. ]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement