欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

JS 使用还原法阵列去加重原理分析

最编程 2024-03-15 21:03:22
...

初始化数据结构如下:

oldarr=[ {id:0001, name:'user1'}, {id:0003, name:'user2'}, {id:0002, name:'user1'}, {id:0003, name:'user2'} ]

根据数组元素对象中name属性来为数组去重

    function arrRemoveRepet(oldarr) {
      let newArr = [];
      const obj = {};
      newArr = oldarr.reduce(function(prev, cur) {
        obj[cur.name] ? '' : (obj[cur.name] = true && prev.push(cur));
        return prev;
      }, []);
      return newArr;
    }
//返回结果为  [ {id:0001, name:'user1'},  {id:0003, name:'user2'} ]

obj 对象中存储的必须是键值对(这样容易判断对象里面有没有这个键),所以对象obj的键cur.name必须对应一个值,这个值逻辑判断必须为 true

obj[cur.name] = 2 // 也是可以的


如果不给 obj[cur.name] 赋 true 值,就变成了字符串和键值对的对比,结果永远是false


引用一个通俗的解释
https://zhidao.baidu.com/question/2117374649677753947.html


试试赋值为 null 的结果