在 JavaScript 中从数组中删除任何数字/元素的奇数出现

在 JavaScript 中从数组中删除任何数字/元素的奇数出现

假设我们有一个像这样的数字数组 -

const arr = [1, 6, 3, 1, 3, 1, 6, 3];

我们需要编写一个 JavaScript 函数,该函数接受一个这样的数组作为第一个也是唯一的参数。然后该函数应该在数组中查找出现奇数次(不包括仅一次)的所有此类数字。

例如,

在上面的数组中,数字1 和 3 都出现了 3 次(奇数),因此我们的函数应该删除这两个数字的第三次出现。

输出数组应该如下所示 -

const output = [1, 6, 3, 1, 3, 6];

我们将准备一个哈希映射来跟踪每个数字的出现次数,最后我们将迭代该映射以删除最后一次出现的出现奇数次的该数字。

映射中的每个键都将保存一个数组值,其中第一个元素是该元素出现的次数,第二个元素是该元素出现的最后一个索引。

示例

其代码为 -

现场演示

const arr = [1, 6, 3, 1, 3, 1, 6, 3];
const removeOddOccurence = (arr =[]) => {
   // keeping the original array unaltered
   const copy = arr.slice();
   const map = {};
   arr.forEach((num, ind) => {
      if(map.hasOwnProperty(num)){
         map[num][0]++;
         map[num][1] = ind;
      }else{
         map[num] = [1, ind];
      };
   });
   for(const key in map){
      const [freq, index] = map[key];
      if(freq !== 1 && freq % 2 === 1){
         copy.splice(index, 1, '');
      };
   };
   return copy.filter(el => el !== '');
};
console.log(removeOddOccurence(arr));

输出

控制台中的输出将是 -

[1, 6, 3, 1, 3, 6]

以上就是在 JavaScript 中从数组中删除任何数字/元素的奇数出现的详细内容,更多请关注编程之家其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)