Javascript 基于其他多个值在数组中添加值,然后重新分组

Javascript 基于其他多个值在数组中添加值,然后重新分组,javascript,arrays,Javascript,Arrays,我有以下数据: 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, "U

我有以下数据:

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]
];
预期输出应如下所示:

var data = [
  ["School", 3,0,0],
  ["Warehouse", 0,3,0],
  ["Residential", 341, 532, 257],
  ["Gas Station", 0,1,0]
];
对于其代表性

  • 数据[i][0]-->级别
  • 资料[i][1]-->建筑物名称
  • 数据[i][2]-->建筑类型
  • 数据[i][3]-->计数
结果应具有以下顺序:

建筑类型、一级计数、二级计数、三级计数

如果阵列具有相同的标高和相同的建筑类型,则应添加计数值

如何使用JavaScript或JQuery实现这一点?

var输入=[
[1,“圣米格尔国家中央高中”,“学校”,1],
[1,“圣米格尔中心小学”,“学校”,2],
[2,“Medrano的碾米厂和仓库”,“仓库”,3],
[1,“未知”、“住宅”,341],
[2,“未知”,“住宅”,532],
[3,“未知”、“住宅”,257],
[2,“未知”,“加油站”,1]
];
var输出=[];
函数init(){
var指数={};
for(让输入的构建){
如果(!index.hasOwnProperty(建筑[2])){
索引[building[2]]=output.length;
push([building[2],0,0,0]);
}
输出[索引[建筑物[2]][建筑物[0]+=建筑物[3];
}
控制台日志(输出);
}

document.addEventListener(“DOMContentLoaded”,init,false)第一步是编写一些代码