js 数组自定义变量去重

95 阅读1分钟
// 数组自定义变量去重
const deWidthFn = (data, name, value) => {
  if (value) {
    let newData = [];
    let map = new Map();
    for (const item of data) {
      if (item[name] === value) {
        map.set(item[name], item);
      } else {
        newData.push(item);
      }
    }
    newData.push(...map.values());
    return newData;
  } else {
    let map = new Map();
    for (const item of data) {
      if (!map.has(item[name])) {
        map.set(item[name], item);
      }
    }
    return [...map.values()];
  }
};