JS中的数字数组去重

 // 方法1:  ES6中的Set数据结构法
 function arrRemoval(array) {
  //  let set = Array.from(new Set(array));
   let set = [...new Set(array)];
   return set;
 }

//方法2:定义一个空的新数组,每次判断新数组中是否包含当前元素,如果不包含则添加
 function arrRemoval(array) {
   let result = [];
   array.forEach((ele,ind) =>{
      if(!result.includes(ele)) {
        result.push(ele);
      }
   })
   return result;
 }

 //方法3: indexOf法, indexof(item):返回数组中找到的第一个元素的下标
 function arrRemoval(array) {
   let result = [];
   result = array.filter((ele,ind) =>{
      return array.indexOf(ele)===ind; 
   })
   return result;
 }

 //方法4: reduce法: 
 function arrRemoval(array) {
     let result = [];
     // 定义初始的pre为[]  
     result = array.reduce( function(pre, item){
       // return pre.indexOf(item)!==-1 ? pre : pre.concat(item);
       return pre.indexOf(item)!==-1 ? pre : [...pre,item];
     }, [])
    return result;
 }

// 方法5:利用对象中的key不可重复的特性,如果key重复则后面设置的value覆盖前面的value
 function arrRemoval(array) {
      let result = {};
      // 定义初始的pre为[]  
      array.forEach((ele,ind) => {
        result[ele] = ind;
      });
      // console.log(Object.keys(result));   //["1", "2", "3", "4", "5"]
      
      return Object.keys(result).map((ele,ind)=>{
        // ~~返回的结果为数值型
        // return ~~ele;
        return parseInt(ele);
      })
 }
 // 方法6: 先排序, 然后比较第i项和i+1项,
 function arrRemoval(array) {
      let result = [];
      array.sort();
      for(let i=0;i

 

你可能感兴趣的:(JavaScript)