js数组去重(key,value)

方法一:

采用对象访问属性的方法,判断属性值是否存在,如果不存在就添加。

方法二:

采用数组中的reduce方法,遍历数组,也是通过对象访问属性的方法

var arr = 
  [
    {
      key: "01",
      value: "乐乐"
    },
    {
      key: "02",
      value: "博博"
    },
    {
      key: "03",
      value: "淘淘"
    },
    {
      key: "04",
      value: "哈哈"
    },
    {
      key: "01",
      value: "乐乐"
    }
  ];

  //  方法1:利用对象访问属性的方法,判断对象中是否存在key
  var result = [];
  var obj = {};
  for (var i = 0; i < arr.length; i++) {
    if (!obj[arr[i].key]) {
      result.push(arr[i]);
      obj[arr[i].key] = true;
    }
  }
  console.log(result);
  // [{key: "01", value: "乐乐"},{key: "02", value: "博博"},{key: "03", value: "淘淘"},{key: "04", value: "哈哈"}]

  //  方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值
  var obj = {};
  arr = arr.reduce(function(item, next) {
    obj[next.key] ? "" : (obj[next.key] = true && item.push(next));
    return item;
  }, []);
  console.log(arr);
  // [{key: "01", value: "乐乐"},{key: "02", value: "博博"},{key: "03", value: "淘淘"},{key: "04", value: "哈哈"}]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。