假設我們有一個像這樣的數字數組-
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中文網其他相關文章!