数据处理

84 阅读1分钟

一、数组去重: 1.1)new set() + 扩展运算符

const dataArr = (arr) => [...new Set(arr)]
console.log(dataArr(["前端","js","html","js","css","html"]));   // ['前端', 'js', 'html', 'css']

1.2) new set() + Array.from();

let arr = [2,2,4,3,4,1,3,2,7,5,];
let setArr = new Set(arr);      //Set(7) {2,4,3,1 …}
let newArr= Arry.from(setArr)   // [2,4,3,1,7,5]

2)forEach+indexOf(); filter()+indexOf()

function fn(arr){
   let newArr = []
   arr.forEach((val)=>{
         if(newArr.indexOf(val) == -1){
              newArr.push(val)
          }
    })    
   return newArr  
}    

function fn(arr) {
  return arr.filter((item, index, arr) => arr.indexOf(item) === index)
}

3)for+ splice()


for(var i=0;i<arr.length;i++){
    for(var j=i+1;j<arr.length;j++){
         if(arr[i]==arr[j]){
              arr.splice(j,1)
         }
    }
} 

二、简单排序 sort()

function fn(){
     let newArr=[];
     
     //arr.sort((a,b)=>{return b-a});    //降序
     arr.sort((a,b)=>{return a-b});      //升序
     //arr.reverse();                    //颠倒数组顺序[1,2,3,4,5]——[5,4,3,2,1]
     
     arr.forEach((v,i)=>{
      if(v!==arr[i+1]){
      newArr.push(v)
      }

     })
return newArr
}

三、数组扁平化: 1)arr.flat(Infinity)

2)toString()

var arr = [1,2,[3,4,5,[6,7,8],9],10,[11,12]];
var bb=arr.toString().split(',').map((v)=>{
  return parseInt(v)
});
console.log(bb)  // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

3)递归:

function fn(arr){
  let arr1=[];
  arr.forEach((v)=>{
  if(v instanceof Array){
       arr1=arr1.concat(fn(v))
      }else{
        arr1.push(v)  
  
      }
  
   })
  
  return arr1;

}

四、求交集、并集和差集:

let a = new Set([1, 2, 3]) ;
let b = new Set([2, 3, 4]);

//并集
let c = new Set([...a,...b]);    //Set(4) {1, 2, 3, 4}

//交集
new Set([...a].filter(v => b.has(v)))    // Set(2) {2, 3}

//差集
new Set([...a].filter(v => !b.has(v)))   // Set(1) {1}

五、方法收集: 1)includes()——es7

let arr = [1, 2, 3, 4];
//es6
arr.includes(9)  //false
arr.includes(4)  //true

//es7