1. // var addBinary = function(a, b) {
    2. // a = parseInt(a,2);
    3. // b = parseInt(b,2);
    4. // return (a+b).toString(2)
    5. // };会出现错误
    6. var addBinary = function (a, b) {
    7. a = a.split(""), b = b.split("");
    8. const res = [];
    9. // 是否需要进位
    10. let big = false;
    11. while (a.length || b.length) {
    12. let c = a.pop(), d = b.pop();
    13. // 如果数组空了,和运算+0是一样的
    14. c = c === undefined ? 0 : +c;
    15. d = d === undefined ? 0 : +d;
    16. let sum = c + d;
    17. if (big) {
    18. sum += 1;
    19. big = false;
    20. }
    21. if (sum > 1) {
    22. res.unshift(sum - 2)
    23. big = true;
    24. } else {
    25. res.unshift(sum)
    26. }
    27. }
    28. // 算到最后,还需要进位的话
    29. if (big) {
    30. res.unshift(1)
    31. }
    32. return res.join("");
    33. };

    image.png