一天一个仿lodash函数实现-sortedUniq
sortedUniq 和 uniq很像(uniq还没讲到就已经开始说sortedUniq了)
将排好序的数组去重,因为数组本身就排序了,那就好办了,遍历数组,重复的元素只会是连续的,所以只要用一个变量记录遍历时经过的不同数,下一个遍历只要遇到不同的数,就推入结果,并赋值给变量即可。
function sortedUniq(arr){
if(!arr.length) return [];
let index = 1;
const end = arr.length;
const result = [arr[0]];
let seen = arr[0];
while(index<end){
if(arr[index]!==seen) {
result.push(arr[index])
seen = arr[index];
}
index++;
}
return result;
}
function sortedUniqBy(arr, iteratee){
if(!arr.length) return [];
const it = typeof iteratee === 'string'?i=>i[iteratee]:iteratee;
let index = 1;
const end = arr.length;
const result = [arr[0]];
let seen = it(arr[0]);
while(index<end){
const cur = it(arr[index])
if(cur!==seen) {
result.push(arr[index])
seen = cur;
}
index++;
}
return result;
}
分类:
一天一个函数实现
标签:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律