js二维数组里面的数组,根据某一项值相同就合并
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js二维数组里面的数组,根据某一项值相同就合并相关的知识,希望对你有一定的参考价值。
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]]
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]));
最后一段改成这样就可以了。
格式是我要的,但是还有个问题,就是 如果我的其中有一条没有值
,空格的那一条会跑到第一格的位置。正常 应该是A2,B2,空格
不太理解你的需求,能说的更清楚一点吗变成啥样的?
追问现在是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]]
参考技术B for(vari=,n;n=arr[i];i++)console.log(n.ti追问怎么只有一小部分,而且还有错误
php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
$infos = array( array( ‘gid‘ => 36, ‘name‘ => ‘高二佳木斯‘, ‘start_time‘ => ‘2015-08-28 00:00:00‘, ‘pic‘ => ‘2015/08/438488a00b3219929282e3652061c2e3.png‘ ), array( ‘gid‘ => 36, ‘name‘ => ‘高二佳木斯‘, ‘start_time‘ => ‘2015-08-20 00:00:00‘, ‘pic‘ => ‘2015/08/438488a00b3219929282e3652061c2e3.png‘ ), array( ‘gid‘ => 36, ‘name‘ => ‘高二佳木斯‘, ‘start_time‘ => ‘2015-08-28 00:00:00‘, ‘pic‘ => ‘2015/08/438488a00b3219929282e3652061c2e3.png‘ ), array( ‘gid‘ => 36, ‘name‘ => ‘高二佳木斯‘, ‘start_time‘ => ‘2015-08-27 00:00:00‘, ‘pic‘ => ‘2015/08/438488a00b3219929282e3652061c2e3.png‘ ), array( ‘gid‘ => 18, ‘name‘ => ‘天书‘, ‘start_time‘ => ‘2015-08-24 00:00:00‘, ‘pic‘ => ‘dev/2015/08/438488a00b3219929282e3652061c2e3.png‘ ), array( ‘gid‘ => 17, ‘name‘ => ‘晒黑西游‘, ‘start_time‘ => ‘2015-08-06 00:00:00‘, ‘pic‘ => ‘‘ ) array( ‘gid‘ => 17, ‘name‘ => ‘晒黑西游‘, ‘start_time‘ => ‘2015-08-24 00:00:00‘, ‘pic‘ => ) );
$result= array(); foreach ($infos as $key => $info) { $result[$info[‘gid‘]][] = $info; } print_r($result);
Array( [36] => Array( [0] => Array( [gid] => 36 [name] => 高二佳木斯 [start_time] => 2015-08-28 00:00:00 [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png ) [1] => Array( [gid] => 36 [name] => 高二佳木斯 [start_time] => 2015-08-20 00:00:00 [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png ) [2] => Arra( [gid] => 36 [name] => 高二佳木斯 [start_time] => 2015-08-28 00:00:00 [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png ) [3] => Array( [gid] => 36 [name] => 高二佳木斯 [start_time] => 2015-08-27 00:00:00 [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png ) ) [18] => Array( [0] => Array( [gid] => 18 [name] => 天书 [start_time] => 2015-08-24 00:00:00 [pic] => dev/2015/08/438488a00b3219929282e3652061c2e3.png ) ) [17] => Array( [0] => Arra( [gid] => 17 [name] => 晒黑西游 [start_time] => 2015-08-06 00:00:00 [pic] => ) [1] => Array( [gid] => 17 [name] => 晒黑西游 [start_time] => 2015-08-24 00:00:00 [pic] => ) ) );
以上是关于js二维数组里面的数组,根据某一项值相同就合并的主要内容,如果未能解决你的问题,请参考以下文章
js 判断数组里面的对象是不是有id相同(某一项),相同就过滤只留下一项
js中一个二维数组怎么判断某一固定列中是不是存在某值,要最优算法?
php数组实现根据某个键值将相同键值合并生成新二维数组的方法