js数组方法去重以及根据属性值去重

先说直接去重的

indexOf

var arr = [1,2,3,1,4,2,2]
var arr2 = []

for(var i =0;i

includes

var arr3 = []
for(var i = 0 ;i

Set

var arr4 = new Set(arr)
console.log(arr4)    [1, 2, 3, 4]

根据属性值去重的

for循环

let data = [
  {sum:1,data:'20200907'},
  {sum:5,data:'20200906'},
  {sum:8,data:'20200907'},
  {sum:12,data:'20200908'},
]

var arr1 = []
let obj = {}
for(var i = 0;i

js数组方法去重以及根据属性值去重_第1张图片

ES6

  let data = [
  {sum:1,data:'20200907'},
  {sum:5,data:'20200906'},
  {sum:8,data:'20200907'},
  {sum:12,data:'20200908'},
 ];
function filterArr(Arr, data) {
    let newarr = {};
     return Arr.reduce((ok, item) => {
        newarr[item[data]] ? '' : newarr[item[data]] = true && ok.push(item);
        return ok;
    }, []);
}
let Arr = filterArr(data, 'data');
console.log(Arr);

js数组方法去重以及根据属性值去重_第2张图片

你可能感兴趣的:(js,es6,数组去重)