Javascript算法:合并数组中相邻且重复的元素

技术群里有人扔出来一道算法题。练手玩玩。

说明:请实现一个函数 merge,传入一个数组,合并数组中【相邻且重复】的元素。

示例:

merge([3,2,2,4,5,5,6,2,1]); // 输出[3,2,4,5,6,2,1]

merge([3,2,3]); // 输出[3,2,3]

merge([2,2,3]); // 输出[2,3]

实现思路,循环遍历数组,当前元素如果跟上个元素不相等,就将当前元素插入到新数组,然后返回新数组,就是可以实现合并数组中【相邻且重复】的元素了。具体实现如下:

function merge(arr) {
    let newArr = []
    arr.forEach((item, index) => {
        if(item != arr[index-1]) {
            newArr.push(item)
        }
    });

    return newArr
}
console.log(merge([2,2,3])); // 输出[2,3]
console.log(merge([3,2,3])); // 输出[2,3]
console.log(merge([3,2,2,4,5,5,6,2,1])); // 输出[2,3]
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 搞懂基本排序算法 上篇文章写了关于 Java 内部类的基本知识,感兴趣的朋友可以去看一下:搞懂 JAVA 内部类;...
    醒着的码者阅读 1,362评论 3赞 4
  • 一、数组定义 array() 1、索引数组 在一个变量中,存储一个或多个值。数组中的每一个元素都有一个访问ID,根...
    竹与豆阅读 595评论 0赞 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,201评论 1赞 45
  • 最近在读< >时,了解到了很多常用的排序算法,故写一篇读书笔记记录下这些排序算法的思路和实现. 冒泡排序 冒泡排序...
    SylvanasSun阅读 866评论 0赞 0
  • 好的习惯是好的生活的开始 突然也想有个手帐本 里面要包括,book list, 习惯, 每天坚持的成果,收获 感觉...
    木瓜阿云920阅读 259评论 0赞 4

友情链接更多精彩内容