学无先后,达者为师

网站首页 编程语言 正文

数组去重并找到所有重复的项的索引位置

作者:Mr.一 更新时间: 2022-04-22 编程语言
例如此例子。找到该数组里面对象拥有相同name的对象索引,以及值      
      const objs = [
        { name: "1", age: 12 },
        { name: "2", age: 12 },
        { name: "3", age: 12 },
        { name: "1", age: 12 },
        { name: "1", age: 12 },
        { name: "7", age: 12 },
        { name: "1", age: 12 },
      ];
      const arr = [];
      objs.map((s) => {   //把要比较的数据单独抽离出来。方便看
        arr.push(s.name);
      });
      const res = [];
      arr.map((i, index) => {     // 这里是核心,通过双层循环。比较有没有重复的项
        arr.map((p, ind) => {
          if (p === i && ind !== index) {  //找到重复的项,并排除掉自身的索引
            res.push(ind);
          }
        });
      });
      let result = Array.from(new Set(res));   //数组去重方法
      console.log(result); //[3, 4, 6, 0]     //这里就得到重复项的索引位置
      const finallys = result.map((l) => {
        return objs[l];
      });
      console.log(finallys); // [{…}, {…}, {…}, {…}]   //这里得到重复的具体的所有项值

原文链接:https://blog.csdn.net/weixin_46016926/article/details/118739163

栏目分类
最近更新