先看效果:
代碼如下:
//定義
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)