js实现对象数组去重

数组去重,一般会在面试的时候才会碰到,要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。
在实际项目中碰到的数组去重,一般都是后台去处理,很少让前端处理数组去重。虽然运用到的概率较低,但还是需要了解一下,以防面试的时候被问到。
在项目中定义对象数组是非常常见的,这就免不了要对对象数组进行去重。当然不能简单的使用===来解决问题,因为这时候数组中的类型为对象类型,即使完全相同的两个对象也不相等的。下面的例子说明一切:

1.数字数组去重

javascript 复制代码
var arr = [11,11,22,33]
function unique(arr) {
    return arr.filter(function (ele, index, array) {
        return array.indexOf(ele) === index
    })
}
unique(arr);

2.对象数组去重

javascript 复制代码
var objArr = [{name:1,num:1},{name:1,num:1},{name:2,num:2}];
const removeDuplicateObj = (arr) => {
  let obj = {};
  arr = arr.reduce((newArr, next) => {
    obj[next.id] ? "" : (obj[next.id] = true && newArr.push(next));
    return newArr;
  }, []);
  return arr;
};
removeDuplicateObj(objArr);

3. 将字符串转成数组

bash 复制代码
Array.from("将字符串转成数组");//["将", "字", "符", "串", "转", "成", "数", "组"]

4.找到数组的最大和最小值,仅适用于单数字数组

javascript 复制代码
let min = arr.sort((a, b) => a - b)[0];
let max = arr.sort((a, b) => b - a)[0];

5.将一个数组中的每个undefined,'',0,false,null的元素过滤掉

javascript 复制代码
let list = [1, "", undefined, 11341];
arr.filter(Boolean); //[1,11341]
相关推荐
一粒黑子5 小时前
【实战解析】阿里开源 PageAgent:纯前端 GUI Agent,一行JS让网页支持自然语言操控
前端·javascript·开源
IT枫斗者5 小时前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
九转成圣6 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
Beginner x_u6 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
SmartRadio6 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
laowangpython7 小时前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫7 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch7 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI7 小时前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn
Brendan_0017 小时前
JavaScript的Stomp.over
开发语言·javascript·ecmascript