2016-10-11 4 views
-1
umgruppieren

ich diese Daten haben:Werte in Array hinzufügen auf andere mehrere Werte basieren dann

var data = [ 
    [1, "San Miguel National Central High School", "School", 1], 
    [1, "San Miguel Central Elementary School", "School", 2], 
    [2, "Medrano's Rice Mill and Warehouse", "Warehouse", 3], 
    [1, "Unknown", "Residential", 341], 
    [2, "Unknown", "Residential", 532], 
    [3, "Unknown", "Residential", 257], 
    [2, "Unknown", "Gas Station", 1] 
]; 

Und die beabsichtigte ouput so sein sollte:

var data = [ 
    ["School", 3,0,0], 
    ["Warehouse", 0,3,0], 
    ["Residential", 341, 532, 257], 
    ["Gas Station", 0,1,0] 
]; 

Für seine Darstellung,

  • Daten [i] [0] -> Ebene
  • Daten [i] [1] -> Gebäudename
  • Daten [i] [2] -> Gebäudetyp
  • Daten [i] [3] -> Count

Das Ergebnis sollte diese Sequenz hat:

Gebäudetyp , Level 1 Count, Level 2 Count, Level 3 Count

Wenn das Array die gleiche Ebene und den gleichen Gebäudetyp hat, sollte der Zählwert hinzugefügt werden.

Wie erreicht man dies mit JavaScript oder JQuery?

+3

Der erste Schritt wäre, einen Code zu schreiben – Tibrogargan

Antwort

0

var input = [ 
 
    [1, "San Miguel National Central High School", "School", 1], 
 
    [1, "San Miguel Central Elementary School", "School", 2], 
 
    [2, "Medrano's Rice Mill and Warehouse", "Warehouse", 3], 
 
    [1, "Unknown", "Residential", 341], 
 
    [2, "Unknown", "Residential", 532], 
 
    [3, "Unknown", "Residential", 257], 
 
    [2, "Unknown", "Gas Station", 1] 
 
]; 
 
    
 
var output = []; 
 
    
 
function init() { 
 
    var index = {}; 
 
    for (let building of input) { 
 
     if (!index.hasOwnProperty(building[2])) { 
 
      index[building[2]] = output.length; 
 
      output.push([ building[2], 0, 0, 0 ]); 
 
     } 
 
     output[index[building[2]]][building[0]] += building[3]; 
 
    } 
 
    console.log(output); 
 
} 
 
document.addEventListener("DOMContentLoaded", init, false);

Verwandte Themen