在 JavaScript 中從陣列中刪除任何數字/元素的奇數出現

王林
發布: 2023-09-06 22:53:07
轉載
1441 人瀏覽過

在 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 中從陣列中刪除任何數字/元素的奇數出現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!