如何使用 JavaScript 計算陣列元素的異或?
我們將使用 for 迴圈遍歷陣列。我們將使用陣列中第一個元素的值初始化一個名為“result”的變數。對於陣列中的每個後續元素,我們將使用異或運算子使用該元素更新“result”的值。此過程將持續到處理完陣列中的所有元素,從而得到陣列中所有元素的最終異或值。
讓我們首先了解什麼是異或。我們還將瞭解陣列上的異或運算如何工作。
陣列異或
異或(異或)運算是一種按位運算,它比較兩個二進位制數字並返回 1(如果它們不同)或 0(如果它們相同)。
陣列上的異或運算是一種使用異或運算組合陣列中所有元素的值的方法。
在大小為 n 的陣列 A 中,所有元素的異或可以透過使用以下公式計算:A[0]A[1]A[2]…A[n-1]。
對陣列的所有元素進行異或運算可以得到陣列中唯一齣現的數字。
陣列上異或運算的一個重要應用是在查詢陣列中僅出現一次的單個數字,而所有其他元素都出現兩次。
方法
以下是如何使用 JavaScript 計算陣列元素的異或的一種方法:
function calculateXOR(arr) { let result = arr[0]; for (let i = 1; i < arr.length; i++) { result = result ^ arr[i]; } return result; }
您可以透過將元素陣列作為引數傳入來呼叫此函式,如下所示:
let arr = [1, 2, 3, 4, 5]; let xor = calculateXOR(arr); console.log(xor);
這將輸出陣列中所有元素的異或。
注意 - 異或運算在 JavaScript 中是按位運算,它將第一個運算元的每個位與第二個運算元中對應的運算元進行比較。如果兩個位相同,則結果中對應的位為 0,否則為 1。
示例
以下是如何使用 JavaScript 計算陣列中所有元素的異或的示例:
function xorArray(arr) { let result = arr[0]; for (let i = 1; i < arr.length; i++) { result = result ^ arr[i]; } return result; } let testArray = [1, 2, 3, 4, 5]; console.log(xorArray(testArray));
解釋
函式 xorArray(arr) 以陣列作為引數。
變數 result 初始化為陣列的第一個元素。
for 迴圈用於遍歷從第二個元素開始的陣列。
在每次迭代中,result 變數使用異或 (^) 運算子進行更新。異或運算子比較第一個運算元的每個位與第二個運算元中對應的位。如果位相同,則結果中對應的位為 0。如果位不同,則結果中對應的位為 1。
for 迴圈結束後,result 的最終值為陣列中所有元素的異或。
函式返回最終結果。
定義了一個測試陣列,並使用測試陣列作為引數呼叫該函式。函式的輸出記錄到控制檯。
輸出
