这段代码如何理解??

var singleNumber = function(nums) {

    return nums.reduce(function(prev, cur) {

        return prev ^ cur;

    });

};

singleNumber([2,3,5,6,2,3,5]) //结果是6

我太菜了理解不了reduec和prev ^ cur,网上查资料解释的不清楚,求大神通俗易懂的解释

慕码人8056858
浏览 414回答 1
1回答

当年话下

reduce这个函数 可以这样理解 将计算得到的结果作为下一次运算的参数继续参与运算;举个例子[1,2,3,4,5].reduce(function(prev,cur){    return prev + cur})//结果就是1+2 = 33+3 = 66+4 = 1010+5 = 15^ 运算符是位运算符,异或操作,简单就是将左右两个参数转换成二进制然后比对比如 3 ^ 5 就是011 ^ 101 ,异或运算会比对参数的每一位上是否相等 如果相等则取0不等则取1,则011 ^ 101=110然后再回头看题目拆分就相当于2^3 = 010^011 = 001 =11^5 = 001^101 = 100 =44^6 = 100^110 = 010 =62^2 = 010^010 = 000 = 00^3 = 000^011 = 011 = 33^5 = 011^101 = 110 = 6
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript