gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:43 24 4
gpt4 key购买 nike

我正在 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;
}

关于javascript - Javascript 中的数组左旋转将记录到控制台但不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51218662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com