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

王林
Lepaskan: 2023-09-06 22:53:07
ke hadapan
1443 orang telah melayarinya

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

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

const arr = [1, 6, 3, 1, 3, 1, 6, 3];
Salin selepas log masuk

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

例如,

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

输出数组应该如下所示 -

const output = [1, 6, 3, 1, 3, 6];
Salin selepas log masuk

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

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

示例

其代码为 -

现场演示

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));
Salin selepas log masuk

输出

控制台中的输出将是 -

[1, 6, 3, 1, 3, 6]
Salin selepas log masuk

Atas ialah kandungan terperinci 在 JavaScript 中从数组中删除任何数字/元素的奇数出现. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!