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