對數組(包括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) 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章