技术群里有人扔出来一道算法题。练手玩玩。
说明:请实现一个函数 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]
网友评论