已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
5天前关闭。
Improve this question
我在练习数组函数,这段代码返回的值在数组中是唯一的,我的问题是,它是如何工作的?例如,我有[2,1,2,1,3],这段代码将返回3。
function singleNumber(nums: number[]): number {
return nums.reduce((prev, curr) => prev ^ curr);
};
我只需要解释一下这个密码。
1条答案
按热度按时间wkyowqbh1#
0是二进制的00
1是01作为二进制
2是二进制的10
3是二进制的11
第一次迭代
前一个= 2; Curr = 1;
2 ^ 1 = 3
10异或01 = 11
第二次迭代
前一个= 3; Curr = 2;
3 ^ 2 = 1
11异或10 = 01
第三次迭代
前一个= 1; Curr = 1;
1 ^ 1 = 0
01异或01 = 00
最终迭代
前一个= 0; Curr = 3;
0 ^ 3 = 3
00异或11 = 11