品易云推流 关闭
文章详情页
文章 > JavaScript > js实现嵌套数组对象去重

js实现嵌套数组对象去重

js嵌套数组对象去重

头像

宋雪维

2021-01-07 15:24:284480浏览 · 0收藏 · 0评论

在JavaScript学习中,小编向大家将介绍过for循环嵌套三元运算符与if-else嵌套方法。那么对于前逃过的数组,如果出现重复不需要的元素又该如何操作呢?本文提供两种嵌套数组对象去重方法:1、可以将各种格式转成字符串,对格式一致的对象数组实现去重。2、数组去除嵌套之后再去重。

1、可以将各种格式转成字符串,对格式一致的对象数组实现去重。

const data =[{name:1,age:1},{name:2,age:2},{name:1,age:1},{name:2,age:2}]
const ChangeArr = (data) => {
  const newdata = data.map(item => (JSON.stringify(item)))
  return [...new Set(newdata)]
}
console.log(ChangeArr(data))
// ["{"name":1,"age":1}", "{"name":2,"age":2}"]

2、数组去除嵌套之后再去重。

function unite(arr1, arr2, arr3) {                        //数组拆嵌套再去重
    for(var i=1;i<arguments.length;i++)
    {
        arr1.push(arguments[i]);
    }
    const flatten = (arr) => {
        return arr.reduce(
            function(acc,val) {
            return acc.concat(Array.isArray(val) ? flatten(val) : val);
        },[]);
    };
    arr1 = flatten(arr1);
    // var obj = {};
    // var array = [];
    function unique(array1){
    return array1 = array1.filter(function(item,index,array){
    return array1.indexOf(item) === index;
  });
    }
    arr1 = unique(arr1);
    return arr1;
}
c(unite([1, 3, 2], [5, 2, 1, 4], [2, 1]));

以上就是小编整理总结的两种嵌套数组对象去重方法,第一种虽然操作简单,但是前提要求数据结构严格,要注意哦~


关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

底部广告图