// 封装方法:根据提供的属性去重
export function arrDistinctByReduce(arr: Array<object>, prop: string) {
  const obj: any = {};
  return arr.reduce(function (preValue: Array<object>, item: any) {
    obj[item[prop]] ? '' : (obj[item[prop]] = true && preValue.push(item));
    return preValue;
  }, []);
}
// 封装方法:根据提供的属性去重
export function arrDistinctByIndex(arr: Array<object>, prop: string) {
  return arr.filter(function (item: any, index: any, self: any) {
    return (
      self.findIndex((el: { [x: string]: any }) => el[prop] == item[prop]) ===
      index
    );
  });
}
// 简单类型的数组去重
export function arrDistinct(arr: any) {
  // ES6中的set数据结构
  const newArr = new Set(arr);
  // ...是ES6中的扩展运算符
  return [...newArr];
}
