javascript - Javascript中的数组左旋转将记录到控制台但不返回
问题描述
我正在研究 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;
}
推荐阅读
- python - 如何使用 OPenCv python 从整个图像中仅裁剪表格?
- c# - 从列表生成的 IQueryable where 子句需要一起进行 OR'd
- replace - 替换字符串操作时出现格式错误
- json - 使用ajax调用控制器并在mvc项目的数据表中设置数据时出现parserError
- python - 如何为我的 Python 脚本设计一个 GUI 运行按钮?只负责点击运行脚本的按钮
- node.js - 为 NodeJs 控制器编写 Mocha Chai 测试用例
- google-apps-script - 即使没有触发事件,仍然会收到通知
- java - 别名适用于 Quickbooks sdk 吗?
- r - 如何安装 plm 包?
- c# - 如何知道使用调试诊断工具请求调用了 OperationContract