Advertisement
dRxL

Untitled

Oct 9th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3.   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5.   <head>
  6.     <title>Trolololo
  7.     </title>
  8.     <script type="text/javascript">
  9.       var trololo = (function(){
  10.         var arraycollection = [
  11.           {
  12.             "date":"2015-10-01",
  13.             "color":"blue",
  14.             "number":"5",
  15.             "shape":"round"    
  16.           },
  17.           {
  18.             "date":"2015-10-02",
  19.             "color":"blue",
  20.             "number":"5",
  21.             "shape":"square"
  22.           },
  23.           {
  24.             "date":"2015-10-03",
  25.             "color":"blue",
  26.             "number":"5",
  27.             "shape":"square"  
  28.           },
  29.           {
  30.             "date":"2015-10-04",
  31.             "color":"green",
  32.             "number":"5",
  33.             "shape":"Rectangle"
  34.           },
  35.           {
  36.             "date":"2015-10-05",
  37.             "color":"Blue",
  38.             "number":"5",
  39.             "shape":"Rectangle"
  40.            }
  41.         ];
  42.      
  43.         function rowfilter(cur, prev){
  44.           var outp = {};
  45.           if (prev == null){
  46.             return [cur];
  47.           }
  48.  
  49.           var differs = 0;
  50.           for (var k in prev){
  51.             if (k == 'date'){
  52.               outp[k] = cur[k]
  53.               continue;
  54.             }
  55.             if (k in cur && cur[k] != prev[k]){
  56.               outp[k] = cur[k];
  57.               differs+=1;
  58.             }
  59.             else{
  60.               outp[k] = '';
  61.             }
  62.           }
  63.           return (differs > 0 ? [outp] : []);
  64.         }
  65.        
  66.         return function(){
  67.           var prev = null;
  68.           var filtered = []
  69.           for (var i in arraycollection){
  70.             var l = arraycollection[i];
  71.             filtered = filtered.concat(rowfilter(l, prev));
  72.             console.log(l);
  73.             console.log(prev);
  74.             console.log(filtered.length);
  75.             prev = l;
  76.           }
  77.          
  78.           var tkeys = ['date','color', 'number', 'shape'];
  79.           var tbody = document.getElementsByTagName('tbody')[0];
  80.           for (var i in filtered){
  81.             var nr = document.createElement('tr');
  82.             tbody.appendChild(nr);
  83.             for(var k in tkeys){
  84.               var nc = document.createElement('td');
  85.               nc.appendChild(document.createTextNode(filtered[i][tkeys[k]]));
  86.               nr.appendChild(nc);
  87.             }
  88.           }
  89.         }
  90.       }());
  91.     </script>
  92.   </head>
  93.   <body onload="trololo()">
  94.     <table>
  95.       <thead>
  96.         <tr>
  97.             <th>Date</th>
  98.             <th>Color</th>
  99.             <th>Number</th>
  100.             <th>Shape</th>
  101.         </tr>
  102.       </thead>
  103.       <tbody>
  104.       </tbody>
  105.     </table>
  106. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement