如何在 JavaScript 中从数组中去除一些重复的项


我们需要编写一个 JavaScript 函数,该函数接受一个文字数组。我们的函数应该返回一个过滤掉所有三项式的新数组。

代码如下 −

const arr1 = [1,1,1,3,3,5];
const arr2 = [1,1,1,1,3,3,5];
const arr3 = [1,1,1,3,3,3];
const arr4 = [1,1,1,1,3,3,3,5,5,5,5,5,5,5,5,5,5,5,5,7,7];
const removeTriplets = arr => {
   const hashMap = arr => arr.reduce((acc, val) => {
      if(val in acc){
         acc[val]++;
      }else{
         acc[val] = 1;
      };
      return acc;
   }, {});
   let res = [];
   let obj = hashMap(arr);
   for(let key in obj){
      for(let i = 0; i < obj[key] % 3; i++){
         res.push(key)
      };
   }
   return res;
}

console.log(removeTriplets(arr1));
console.log(removeTriplets(arr2));
console.log(removeTriplets(arr3));
console.log(removeTriplets(arr4));

控制台中的输出 −

[ '3', '3', '5' ]
[ '1', '3', '3', '5' ]
[]
[ '1', '7', '7' ]

更新日期: 09-Oct-2020

81 个浏览量

职业扬帆远航

完成课程以获得认证

开始
广告