有些需求比如设置部门时候;相同的部门的要放到一起展示,这个时候需要把部门分类弄个数组
如下代码:
var data=[
{name:'领导',age:18},
{name:'领导',age:19},
{name:'领导',age:20},
{name:'小兵',age:20},
{name:'小兵',age:22},
{name:'cto',age:15},
];
这个数据差不多就是部门的数据简化了,name字段就是部门的名字,部门的可以是字符串类型,也有用数字类型存部门编号的,看后台数据库怎么设计了 这个例子用字符串表示,好理解;
一://笨方法
var data=[
{name:'领导',age:18},
{name:'领导',age:19},
{name:'领导',age:20},
{name:'小兵',age:20},
{name:'小兵',age:22},
{name:'cto',age:15},
];
var ld=[];
var xb=[];
var cto=[];
for(var i in data){
var node=data[i];
switch (node.name){
case '领导':
ld.push(node);
break;
case '小兵':
xb.push(node);
break;
case 'cto':
cto.push(node);
break;
}
}
console.log(ld,xb,cto);
事先知道都有什么部门了 然后遍历取一个个判断,但是这个太low了 不智能;
二:相对智能写法
var json={};
for(var i in data){
var node=data[i];
if(json[node.name]){
json[node.name].push(node);
}else {
json[node.name]=[node];
}
}
console.log(json);
思路:先声明这个对象, 遍历的数组的部门字段为对象的属性,判断如果有 就是把数据push进去
然后没有 就给对象增加这个部门属性在赋值;