对数组(包括json数组)中相邻元素查重,并记录每个元素的重复个数

先看效果:

代码如下:

        //定义
        function getMergeArr(oldArr,jsonName){
			console.log('哈哈',oldArr[0][jsonName])
			var newItem = [];
			var j=0;
			var count = 1;
			for(var i=0;i<oldArr.length;i++){
				if(jsonName){
					// json数组
					if(!oldArr[i+1]){
						console.log('最后的i',i)
						oldArr[i].count = count;
						count = 1;
						newItem[j] = oldArr[i];
						j++;
					}else{
						console.log(oldArr[0][jsonName])
						if(oldArr[i][jsonName] != oldArr[i+1][jsonName]){
							console.log(i,i+1)
							oldArr[i].count = count;
							count = 1;
							newItem[j] = oldArr[i];
							j++;
						}else{
							count++;
							if( i == oldArr.length-1){
								console.log('最后的相同的i',i)
								// 如果是最后相同的
								console.log('值',count)
								oldArr[i].count = count;
								newItem[j] = oldArr[i];
								j++;
							}
						}
					}
				}else{
					// 数组
					if(oldArr[i] != oldArr[i+1]){
						oldArr[i]= oldArr[i]+'X'+count;
						count = 1;
						newItem[j] = oldArr[i];
						j++;
					}else{
						count++;
						if( i == oldArr.length-1){
							// 如果是最后相同的
							console.log('值',count)
							oldArr[i]= oldArr[i]+'X'+count;
							newItem[j] = oldArr[i];
							j++;
						}
					}
				}
			}			
			return newItem;
		}
        //使用
        var oldArr = ['旅行箱', '旅行箱', '小米', '大大米','黑米','黑米','黑米','黑米','小米','heimi','小米','小米','小米','小米','米'];
		var oldJsonArr = [{name:'启动',duration:'60'},{name:'游戏',duration:'180'},{name:'游戏',duration:'180'},{name:'over',duration:'60'},{name:'over',duration:'60'}]
		console.log('test1',getMergeArr(oldArr))
		console.log('test2',getMergeArr(oldJsonArr,'name'))

注意:针对数组完美,针对json数组,可以根据自己实际情况进行修改函数(我是根据我自己的情况name相同的duration也相同,如果不同自己可以计算和等等,需要讨论的话,公众号:wander_yun) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值