JS实现数组去重及数组内对象去重功能示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
<script>
//去重
var newarr = [];
// var arr = this.msg;
var arr = [{
name: 1,
ccc: 2
}, {
name: 2
}, {
name: 2
}, {
name: 3
}, {
name: 3
}, {
name: 4
}, {
name: 151
}, {
name: 1
}, ];
//Es6 + ES5去重办法
function duplicate(arr, type) {
if (arr.length == 0) {
return arr;
} else {
if (type) {
var obj = {}
//利用ES6 reduce 累加方法
var newArr = arr.reduce((cur, next) => {
//name是对象键的 名字 保持同步
obj[next.name] ? "" : obj[next.name] = true && cur.push(next);
return cur;
}, [])
return newArr;
} else {
return Array.from(new Set(arr));
}
}
}
//ES5原生去重办法
function duplicate2(arr, type) {
var newArr = [];
var tArr = [];
if (arr.length == 0) {
return arr;
} else {
if (type) {
for (var i = 0; i < arr.length; i++) {
if (!tArr[arr[i][type]]) {
newArr.push(arr[i]);
tArr[arr[i][type]] = true;
}
}
return newArr;
} else {
for (var i = 0; i < arr.length; i++) {
if (!tArr[arr[i]]) {
newArr.push(arr[i]);
tArr[arr[i]] = true;
}
}
return newArr;
}
}
}
console.log('ES5去重', duplicate2(arr, "name"));
console.log('ES6去重', duplicate(arr, "name"));
</script>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-09-14 全选反选以及获取选中的数据