js 数组去重 数组求差集、交集

来源:互联网 发布:供销e家 源码 编辑:程序博客网 时间:2024/06/06 09:19

去重:

数组去重得分以下三种情况:数组里是数字、数组里是字符串、数组里是对象。前两种直接使用jquery提供的unique方法就可实现。一、数字:                              二、字符串:let arr = [1, 1, 2, 4, 2];            let arr1 = ['b', 'a', 'v', 'a'];let newArr = $.unique(arr);           let newArr = $.unique(arr1);console.log(newArr);                  console.log(newArr);输出:[1,2,4]                          输出:['a', 'b', 'v']三、对象: //可接第二种方式来实现:先将对象转为字符串,然后去重后再转为json对象let oData = [    {name:'张三',value:'1'},    {name:'张三',value:'1'},    {name:'李四',value:'2'},    {name:'王五',value:'3'},];var newData = [];//将json对象转为字符传for(var i in oData){    oData[i] = JSON.stringify(oData[i]);    newData.push(oData[i]);}oData = [];//去重newData = $.unique(newData); //转为json对象for(var j in newData){    newData[j] = JSON.parse(newData[j]);    oData.push(newData[j]);}

求差集、交集:

应用场景:有2个列表,需要做到一一对应也就是映射的关系。说人话就是:选过之后的值就不能再选。

let allArr = ['a', 'b', 'c', 'd', 'e'];let checkArr = ['a', 'd', 'e']; function getDiffrentSet (allArr, arr2) {    var resultArr = [];    for (let i in allArr) {        //if (checkArr.indexOf(allArr[i]) < 0) {  //差集["c", "b"]        if (checkArr.indexOf(allArr[i]) >= 0) {   //交集["a", "d", "e"]            resultArr.push(checkArr[i]);        }    }    return resultArr;}
原创粉丝点击