Object.keys的顺序相反

Luc*_*cky 0 javascript

我有一个有趣的任务.我解决了一半,但无法找到解决其余问题的解决方案.希望有人能指出我正确的方向.

我发现解决方案接近我的任务.但我的略有不同,使用ES6.

有嵌套对象.

let someList = {

   value: 1,

   next: {

      value: 2,

      next: {

         value: 3,

         next: {

            value: 4,

            next: null

            }

         }

    }

};
Run Code Online (Sandbox Code Playgroud)

我收到了所有价值观.

function reversePrint(linkedList) {

Object.keys(linkedList).map(key => {
let myKey = linkedList[key];
typeof myKey == "object" ?  console.log(reversePrint(myKey)) : console.log(myKey);
});

}

reversePrint(someList);
Run Code Online (Sandbox Code Playgroud)

但问题是:我如何以相反的顺序获得所有值?

小提琴:https://jsfiddle.net/L83puqbz/17/

我尝试使用reduce来生成数组并反转它,但每个值都在单独的数组中.

小提琴https://jsfiddle.net/L83puqbz/20/

任何帮助都将受到极大的关注.

cur*_*ing 5

编辑 - 抱歉是的,更多解释.

以下代码将通过链接列表并以相反的顺序打印值.

由于日志是在递归调用之后,因此在控制台日志开始之前,这将一直到最后一个节点.然后在每个控制台日志之后,堆栈中的当前函数将结束,允许前一个函数继续打印.

let someList = {
  value: 1,
  next: {
    value: 2,
    next: {
      value: 3,
      next: {
        value: 4,
        next: null
      }
    }
  }
};

function printAfter(node){
  if(node.next != null){
    printAfter(node.next);
  }
  console.log(node.value);
}

printAfter(someList)
Run Code Online (Sandbox Code Playgroud)