Advertisement
Aliendreamer

table filter

Feb 10th, 2019
502
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(arr,sortString){
  2. let matrix=arr;
  3. const sortingArr=sortString.split(' ');
  4.  
  5. let command=sortingArr[0];
  6.  
  7. switch(command){
  8.  
  9.     case "hide":
  10.     hide(matrix);
  11.     break;
  12.  
  13.     case "sort":
  14.      matrix= Sort(matrix);
  15.     break;
  16.  
  17.     case "filter":
  18.     filter(matrix);
  19.     break;
  20. }
  21. for (const row of matrix) {
  22.     console.log(row.join(' | '));
  23. }
  24. function hide(arr){
  25.     let headerToHide=sortingArr[1];
  26.     let index=arr[0].indexOf(headerToHide);
  27.     for (let line of matrix) {
  28.         line.splice(index,1);
  29.     }
  30. }
  31.  
  32. function Sort(arr){
  33.     let headerTofilterOn=sortingArr[1];
  34.     let index=arr[0].indexOf(headerTofilterOn);
  35.     let ordered=arr.sort((a,b) => a[index]=== headerTofilterOn ? -1 : b[index] === headerTofilterOn ? 1 : a[index].localeCompare(b[index]));
  36.    
  37.     return ordered;
  38. }
  39.  
  40. function filter(arr){
  41.     let headerTofilterOn=sortingArr[1];
  42.     let index=arr[0].indexOf(headerTofilterOn);
  43.     let valueToFilterOn=sortingArr[2];
  44.     for(let i = 1; i < arr.length; i++) {
  45.         let contains=arr[i][index]===valueToFilterOn;
  46.         if(contains===false){
  47.             arr.splice(i,1);
  48.             i--;
  49.         }
  50.     }
  51. }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement