Algorithm:2. Add Two Numbers

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
let addTwoNumbers = function(l1, l2) {
    let result;
    let currentNode;
    let temp = 0;
    do {
        if (!result) result = currentNode = new ListNode(0);
        else currentNode = currentNode.next = new ListNode(0);
        temp = (l1?l1.val:0) + (l2?l2.val:0) + temp;
        currentNode.val = temp % 10;
        temp = (temp - temp % 10) / 10;
        l1 = l1 && l1.next;
        l2 = l2 && l2.next;
    } while(l1 || l2 || temp);
    return result;
};

Review:Simplify your JavaScript – Use .map(), .reduce(), and .filter()

作者讲解了.map(), filter(), .reduce(),以及同forEach做了一些使用上的对比。阅读这篇文章,可以对上面三个方法的使用场景有更清晰的认识。

Tip:这周参加了一个线上面试,一紧张用了for循环去做了字符串对比,哈哈。其实有更高级的接口可以实现,甚至用正则也可以。通过这件事情,体会到平时养成使用高级接口的重要性,遇到问题先结合使用环境考虑一下有没有什么高级接口可以使用,如果没有再去用低级接口自己实现。

Share:await探究 我在这篇文章里简单探讨了一下await的一些执行表现。