技術(shù)群里有人扔出來一道算法題省店。練手玩玩屡律。
說明:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù) merge,傳入一個(gè)數(shù)組巩掺,合并數(shù)組中【相鄰且重復(fù)】的元素汹来。
示例:
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]
實(shí)現(xiàn)思路续膳,循環(huán)遍歷數(shù)組,當(dāng)前元素如果跟上個(gè)元素不相等收班,就將當(dāng)前元素插入到新數(shù)組坟岔,然后返回新數(shù)組,就是可以實(shí)現(xiàn)合并數(shù)組中【相鄰且重復(fù)】的元素了摔桦。具體實(shí)現(xiàn)如下:
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]