数组去重的方案 红太狼 2023-01-05 12:37 136阅读 0赞 # 第 1 章:数组去重 # ## 1.1 单个元素去重 ## ### 1.1-1 利用ES6 Set去重 ### function unique(arr) { return Array.from(new Set(arr)) } var arr = [1, 2, 3, 4, 5, 2, 1, 9, 0, 5] console.log(unique(arr));//=>[1, 2, 3, 4, 5, 9, 0] ### 1.1-2 利用filter去重 ### var r; var arr = [1, 2, 3, 4, 5, 2, 1, 9, 0, 5] r = arr.filter((element, index, self) => { return self.indexOf(element) === index; }) console.log(r)//=>[1, 2, 3, 4, 5, 9, 0] ## 1.2 数组对象去重【重点】 ## var arr = [ { id: 0, name: '周瑜' }, { id: 1, name: '王昭君' }, { id: 2, name: '夏侯惇' }, { id: 3, name: '夏侯惇' }, { id: 4, name: '不知火舞' } ] /* 方法一:数组的reduce方法 【会更改数组的原始数据】【ie9以下不支持此方法】 首先确定:数组对象里面的唯一标识,如:name字段 */ let newObj = { }; arr = arr.reduce((preval, curval) => { newObj[curval.name] ? '' : newObj[curval.name] = true && preval.push(curval); return preval }, []) console.log('去重arr22', arr); /* 原生js方法:distinct1保留元数据,获取去重后的新数组 */ // 方法一 【推荐】 function distinct1(arr, key) { var newobj = { }, newArr = []; for (var i = 0; i < arr.length; i++) { var item = arr[i]; if (!newobj[item[key]]) { newobj[item[key]] = newArr.push(item); } } return newArr; } var newArray = distinct1(arr, 'name'); // 首先确定:数组对象里面的唯一标识,如:name字段 console.log('去重的新数组dis1', newArray); console.log('原数组', arr); // 方法二 会更改数组的原始数据 function distinct3(arr, key) { for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { if (arr[i][key] === arr[j][key]) { arr.splice(j, 1); j = j - 1; } } } return arr; } var newArr = distinct3(arr, 'name') console.log('去重后的数组new', newArr); console.log('原数组', arr); #### 去重指定元素 #### var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]; function disArray(arr, key) { var newArr = []; for (var i = 0; i < arr.length; i++) { if (arr[i] != key) { newArr[newArr.length] = arr[i]; } } return newArr; } var oA = disArray(arr1, 0); // 去重零 console.log('11111',oA); //=>[2, 6, 1, 77, 52, 25, 7]
相关 数组去重的方案 第 1 章:数组去重 1.1 单个元素去重 1.1-1 利用ES6 Set去重 function unique(arr) { ret 红太狼/ 2023年01月05日 12:37/ 0 赞/ 137 阅读
相关 数组去重,json数组去重 1.借助json对象对数组进行去重,并计算重复的次数 Array.prototype.unique = function (){ var key = 浅浅的花香味﹌/ 2022年06月13日 03:40/ 0 赞/ 384 阅读
相关 数组去重 //第一种 // ES6 部署了 Set 以及 Array.from 方法,太强大了!如果浏览器支持,完全可以这样: function unique1 素颜马尾好姑娘i/ 2022年05月25日 03:42/ 0 赞/ 297 阅读
相关 数组去重。。。。 数组去重两种思路: > 1.在原有数组基础上进行去重 > 2.申请新的数组进行去重操作 原有数组上进行操作: 1. es6 set方法去重 fun 小鱼儿/ 2022年05月10日 03:20/ 0 赞/ 325 阅读
相关 数组去重 源网址:[https://wenda.so.com/q/1461313505721067][https_wenda.so.com_q_1461313505721067] 关于 喜欢ヅ旅行/ 2022年04月15日 02:41/ 0 赞/ 346 阅读
相关 数组去重 //数组去重 function unique(arr) { var res = [arr[0]]; for(var i = 1; i 淩亂°似流年/ 2022年03月08日 12:18/ 0 赞/ 286 阅读
相关 数组去重 对于数组去重的方法有很多,这里总结了数组去重的三种常用方式, public class Test { public static void main(Str ╰+攻爆jí腚メ/ 2022年01月23日 11:51/ 0 赞/ 356 阅读
相关 数组去重 数据去重 var arr = new Array(8); arr\[0\] = \{ XY: "A学院", XM: "学生一" \}; arr\[1\] = \ 曾经终败给现在/ 2021年11月05日 07:28/ 0 赞/ 429 阅读
相关 数组去重 //数组去重 方法1: let arr = [10,22,30,22,10,6,7,6] arr = arr.sort() 你的名字/ 2021年10月16日 01:58/ 0 赞/ 464 阅读
还没有评论,来说两句吧...