日期:2014-05-16  浏览次数:20369 次

js中如何处理多个map,请看下需求
现需求如下,

js里看有四个map,现在要第一个map位基准,把另外三个map的数据整第一个map中



里面的数据格式如下


第一个map

key    value
2010   1
2011   1

第二个map

key    value
2011   2
2012   2

第三个map

key    value
2011   3
2012   3

第四个map

key    value
2012   4
2013   4

最后要的效果就是

2010   1
2011   6
2012   9
2013   4

一定要以第一个map位基础,把另外三个整合进去,如果key相同的 就做个相加 ,如果key不同的,增加一行显示

------解决方案--------------------
我还以为是地图的map.
------解决方案--------------------

<script type="text/javascript">
<!--
var maps=[];
maps.push({"2010":1 , "2011":1});
maps.push({"2011":2 , "2012":2});
maps.push({"2011":3 , "2012":3});
maps.push({"2012":3 , "2014":3});

var result ={};
for(var i=0;i<maps.length;i++){
var map= maps[i];
for(var key in map){
result[key] =(result[key]
------解决方案--------------------
0) + map[key];
}
}

var ss="";
for(var key in result){
ss+= key +"   "+ result[key] +"\n";
}
alert(ss);
//-->
</script>

------解决方案--------------------


var map1=[
{k:'2010',v:1},
{k:'2011',v:1}
];

var map2=[
{k:'2011',v:2},
{k:'2012',v:2}
];
var map3=[
{k:'2011',v:3},
{k:'2012',v:3}
];
var map4=[
{k:'2012',v:4},
{k:'2013',v:4}
];


function Stat(){
var d=[];
this.add=function(){
for(var i=0;i<arguments.length;i++)
 d.push.apply(d,arguments[i]);
}
this.result=function(){