扫码关注官方订阅号
js怎么判断一个数组对象里面有重复的值,并且删除重复的值只保留一个比如 var arr = [{name:'a'},{name:'b'},{name:'c'},{name:'d'},{name:'a'}] 怎么对比
var arr = [{name:'a'},{name:'b'},{name:'c'},{name:'d'},{name:'a'}]
Following the voice in heart.
可以双for循环去找,用第一个和后面挨个对比,重复则删除,在从第二个找,在向后对比,重复则删除
const del = (arr) => { for( let i=0;i<arr.length;i++) { for(let j=i+1;j<arr.length;j++) { if (arr[i].id==arr[j].id) { arr.splice(j,1); i--; } } } return arr; }
突发奇想写的。。。不知道是否满足所有要求。。。哈哈
方法一:
const del = (arr)=>{ let map = []; for(let i = 0; i < arr.length; i++) { let key = JSON.stringify(arr[i]); if(map.includes(key)) { arr.splice(i, 1); i--; } else { map.push(key); } } return arr; }
方法二:
const del = arr=>Array.from(new Set(arr.map(a=>JSON.stringify(a)))).map(a=>JSON.parse(a))
temp.indexOf ( arr[i].name ) = -1;
res.push(arr[i]);
数组去重方法比较多,你还可以有更好的方法
// 数组去重// 有key表示是复杂数组去重,根据数组中对象的属性key来去重function arrUniq(arr, key) {
if (!Array.isArray(arr) || arr.length < 2) { return arr; } // 简单数组去重 if (!key) { return Array.from(new Set(arr)); } // 复杂数组去重 var obj = {}, res = []; arr.forEach((item) => { if (!obj[item[key]]) { res.push(item); obj[item[key]] = true; } }); return res;
}
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
可以双for循环去找,用第一个和后面挨个对比,重复则删除,在从第二个找,在向后对比,重复则删除
突发奇想写的。。。不知道是否满足所有要求。。。哈哈
方法一:
方法二:
temp.indexOf ( arr[i].name ) = -1;
res.push(arr[i]);
数组去重方法比较多,你还可以有更好的方法
// 数组去重
// 有key表示是复杂数组去重,根据数组中对象的属性key来去重
function arrUniq(arr, key) {
}