js二维数组里面的数组,根据某一项值相同就合并
varda={"success":{"1":[{"t":"A4","c":"2017/7/3"},{"t":"A2","c":"2017/7/3"},{"t":"A3",...
var da={ "success": { "1": [ { "t": "A4", "c": "2017/7/3" }, { "t": "A2", "c": "2017/7/3" }, { "t": "A3", "c": "2017/7/4" }, { "t": "A1", "c": "2017/7/4" } ], "2": [ { "t": "B4", "c": "2017/7/3" }, { "t": "B2", "c": "2017/7/3" }, { "t": "B3", "c": "2017/7/4" }, { "t": "B1", "c": "2017/7/4" } ], "3": [ { "t": "C4", "c": "2017/7/3" }, { "t": "C2", "c": "2017/7/3" }, { "t": "C3", "c": "2017/7/4" }, { "t": "C1", "c": "2017/7/4" } ] } };这样一个json数组将日期相同的合成一个数组我自己写的var ass=da.success; var cc = Object.keys(ass); var results = []; for (var i in ass) { var objs = ass[i]; for(var j in objs){ var obj = objs[j]; if(results[j]===undefined){ results[j]=[]; } results[j].push(obj.t); } } for(var a=0;a<results.length;a++){ results[a].unshift(getLocalTime(ass[cc[0]][a].c).split(' ')[0]); //results[a].unshift(getLocalTime(ass[cc[0]][a].c)); console.log(results[a][0]); }
需要合并重复项,我把json取出来做成我要的数组形式了,但是日期相同的没有合并。我要的是第二张图的样子。现在是2017-7-3, A4,B4,C4 2017-7-3, A2,B2,C2 我想根据这个时间,如果时间是一样的,就合并这个数组变成 2017-7-3, A4,B4,C4, A2,B2,C2 这样的。二维数组的形式表达是从这样的[[2017-7-3,A4,B4,C4],[2017-7-3,A2,B2,C2]]变成这样的[[2017-7-3,A4,B4,C4, A2,B2,C2]] 展开
需要合并重复项,我把json取出来做成我要的数组形式了,但是日期相同的没有合并。我要的是第二张图的样子。现在是2017-7-3, A4,B4,C4 2017-7-3, A2,B2,C2 我想根据这个时间,如果时间是一样的,就合并这个数组变成 2017-7-3, A4,B4,C4, A2,B2,C2 这样的。二维数组的形式表达是从这样的[[2017-7-3,A4,B4,C4],[2017-7-3,A2,B2,C2]]变成这样的[[2017-7-3,A4,B4,C4, A2,B2,C2]] 展开
展开全部
var da={"success": {"1": [{"t":"A4","c":"2017/7/3"}, {"t":"A2","c":"2017/7/3"}, {"t":"A3","c":"2017/7/4"}, {"t":"A1","c":"2017/7/4"}], "2": [{"t":"B4","c":"2017/7/3"}, {"t":"B2","c":"2017/7/3"}, {"t":"B3","c":"2017/7/4"}, {"t":"B1","c":"2017/7/4"}], "3": [{"t":"C4","c":"2017/7/3"}, {"t":"C2","c":"2017/7/3"}, {"t":"C3","c":"2017/7/4"}, {"t":"C1","c":"2017/7/4"}] } };
var timesmap = {};
for(var box0 in da.success)
for(var box1 of da.success[box0]) {
if(!timesmap[box1.c])
timesmap[box1.c] = [];
timesmap[box1.c].push(box1.t);
}
var ret = [];
for(var time in timesmap) {
var item = [time];
for(var box0 of timesmap[time])
item.push(box0);
ret.push(item);
}
console.log(ret)
写好了,你看看。
更多追问追答
追问
我要的是A1,B1,C1,A2,B2,C2的形式的 你的是 A1,A2,B1,B2,C1,C2
追答
for(var time in timesmap) {
timesmap[time].sort(function(a,b){
a = a.split("").reverse().join("");
b = b.split("").reverse().join("");
return a>b? 1:-1;
});
ret.push(([time]).concat(timesmap[time]));
}
最后一段改成这样就可以了。
2017-07-06
展开全部
for(vari=,n;n=arr[i];i++){console.log(n.ti
追问
怎么只有一小部分,而且还有错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询