原生js 数组去重 且 筛选某个字段不为空

215 阅读1分钟
//数组去重 且 筛选url不为空(previewInfo是在后端返回的数据)
//第一种方法:
const visitedUrl = [];
const newData = previewInfo.filter(item => {
            if (visitedUrl.includes(item.url)) return false;
            visitedUrl.push(item.url);
            return !!item.url; 
}) 
console.log('全部筛选后', newData)


//第二种方法
var temp = {};
previewInfo = previewInfo.reduce((prev, curv) => {
     if (temp[curv.url]) {
      } else {
         temp[curv.url] = true;
         if(curv.url !== '') {
               prev.push(curv);
         }
      }
     return prev}, []);
const newData = previewInfo