Javascript 中的数组左旋转将记录到控制台但不返回

2024-02-04

我正在 Hackerrank 上研究数组左旋转。我的解决方案将 console.log 包含正确结果的数组,但无法使用 return 来工作。这是他们网站上的详细信息 - “打印一行 n 个空格分隔的整数,表示执行 d 次左旋转后数组的最终状态。”我读到问题可能与在 Node.js 中运行的异步函数有关,但我不确定如何解决这个问题。

// sample input - 1 2 3 4 5
// sample output - 5 1 2 3 4

function rotLeft(a, d) {
  var arr = [];

    for (var i = 1; i <= a; i++){
      arr.push(i)
    };
    for (var j = 1; j <= d; j++){
    	arr.shift(arr.push(j))
    }
    console.log(arr.toString()); // <-- this will print the desired output.
    return arr.toString(); // <-- no return from this.
}


rotLeft(5, 4)

我也一直在努力解决这个问题。您当前的解决方案存在一些问题。请注意,您必须创建一个数组并将从参数传递的数组存储在其中。 您所做的只是创建一个新数组并添加其中应包含的元素数量序列,例如a.length=5你正在做arr.push 1 2 3 4 5。但问题需要一系列用户的选择。第二件事是你应该返回一个数组而不是字符串。

所以这就是这个问题的解决方案:

function rotLeft(a, d) {
    var arr = [];
    for (var i = 0; i < a.length; i++) {
        arr.push(a[i]);
    };
    for (var j = 1; j <= d; j++) {
        arr.shift(arr.push(arr[0]));
    }
    return arr;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 中的数组左旋转将记录到控制台但不返回 的相关文章

随机推荐