玄真君

每天学习一点算法

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1.给定数组 ["a", "a","a", "c", "c", "t", "a", "a"],输出连续同类项出现次数,输出:["a-3", "c-2", "t-1", "a-2"]   

//解法一:
const arr = ["a", "a","a", "c", "c", "t", "a", "a"]; let len = arr.length; let temp = []; let obj = {}; arr.forEach((e, i)=> { if( e !== arr[i-1] && i!==0 ) { temp.push(i); } }) temp.forEach((e, i)=> { arr.splice(e+i, 0, '|') }) let aim = arr.join('').split('|') let res = []; aim.forEach((e)=> { let key = e[0] res.push([key]+'-'+e.length); }) console.log(res) // ["a-3", "c-2", "t-1", "a-2"]

//解法二:

const arr = ["a", "a","a", "c", "c", "t", "a", "a"];
let temp = [];
arr.forEach((e, i)=> {
  if( e !== arr[i-1] ) {
    temp.push(i);
  }
})
let indexArr = [];
temp.forEach((e, i)=> {
  indexArr.push(arr.slice(e, temp[i+1]));
})
let res = [];
indexArr.forEach((e)=> {
  res.push(e[0]+'-'+e.length);
})
console.log(res)

 

  



 

posted on 2021-06-26 00:42  玄真君  阅读(34)  评论(0)    收藏  举报