cyfeng

去重数据:

var arr = [{
      key: \'01\',
      value: \'西施\'
    }, {
      key: \'02\',
      value: \'王昭君\'
    }, {
      key: \'03\',
      value: \'杨玉环\'
    }, {
      key: \'04\',
      value: \'貂蝉\'
    }, {
      key: \'01\',
      value: \'西施\'
    }, {
      key: \'01\',
      value: \'西施\'
    }];

方法一:

利用对象访问属性的方法,判断对象中是否存在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: "貂蝉"}]

方法二:

利用两层for循环和布尔值的方法进行去重
var result = [];
    for (var i = 0; i < arr.length; i++) {
      var flag = true;
      for (var j = 0; j < result.length; j++) {
        if (arr[i].key === result[j].key) {
          flag = false;
        }
      }
      if (flag) {
        result.push(arr[i]);
      }
    }
    console.log(result); // [{key: "01", value: "西施"},{key: "02", value: "王昭君"},{key: "03", value: "杨玉环"},{key: "04", value: "貂蝉"}]

方法三:

利用两层for循环和splice的方法进行去重,此方法会更改数组的原始数据
for (var i = 0; i < arr.length; i++) {
      for (var j = i + 1; j < arr.length; j++) {
        if (arr[i].key === arr[j].key) {
          arr.splice(j, 1);
          j = j - 1;
        }
      }
    }
    console.log(arr); // [{key: "01", value: "西施"},{key: "02", value: "王昭君"},{key: "03", value: "杨玉环"},{key: "04", value: "貂蝉"}]

方法四:

利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值(ie9以下不支持此方法)
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: "貂蝉"}]

 

分类:

技术点:

相关文章:

  • 2018-01-11
  • 2021-11-11
  • 2021-05-14
  • 2021-12-10
  • 2021-04-07
  • 2021-12-10
  • 2021-11-01
  • 2021-11-01
猜你喜欢
  • 2021-11-01
  • 2021-09-12
  • 2018-04-28
  • 2018-01-19
  • 2021-11-01
  • 2021-11-01
  • 2021-11-01
相关资源
相似解决方案