【问题标题】:How do I dynamically access property accessors in javascript?如何在 javascript 中动态访问属性访问器?
【发布时间】:2021-12-05 03:32:12
【问题描述】:

如何在 javascript 中动态访问属性访问器?可以说我正在构建一个链接列表。假设这个列表可以是任意长度,并且会动态变化。

var answerList = new ListNode(4);
answerList.next = new ListNode(5);
answerList.next.next = new ListNode(6);
answerList.next.next.next = new ListNode(7);

我怎样才能让它进入第 100 个 .next 而不做:

answerList.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next.next

【问题讨论】:

    标签: javascript properties accessor


    【解决方案1】:

    如果你想在 LinkedList 中插入 100 个元素,请这样做

    var head = new ListNode(0);
    var temp = head; // sets temp to head 
    for(let i=1; i<100;i++){
         temp.next = new ListNode(i); // links new nodes to temp
         temp = temp.next;} // at the end head->0->1->2..->98->99
    

    【讨论】:

    • 这对我有用。谢啦。我没有意识到你可以像这样通过 temp 链接它。
    • 你介意接受这个作为 Anon 的答案吗?
    【解决方案2】:

    如果您将currLevelfinalLevel 传递为:

    function getValue(linkedList, currLevel, finalLevel) {
      if (currLevel === finalLevel) return linkedList?.value;
      return getValue(linkedList.next, currLevel + 1, finalLevel);
    }
    

    您必须处理这样的情况,即您传递数字的节点不多,那么它可能不会有.next 属性,即意味着这是链表中的最后一个元素。一种方法是:

    return (linkedList.next && getValue(linkedList.next, currLevel + 1, finalLevel));
    

    class ListNode {
      constructor(val) {
        this.value = val;
        this.next = null;
      }
    }
    
    var answerList = new ListNode(4);
    answerList.next = new ListNode(5);
    answerList.next.next = new ListNode(6);
    answerList.next.next.next = new ListNode(7);
    
    function getValue(linkedList, currLevel, finalLevel) {
      if (currLevel === finalLevel) return linkedList?.value;
      return getValue(linkedList.next, currLevel + 1, finalLevel);
    }
    
    console.log(getValue(answerList, 0, 3));

    【讨论】:

      猜你喜欢
      • 2013-04-27
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 2021-09-23
      • 2014-02-19
      • 1970-01-01
      相关资源
      最近更新 更多