Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CodCrotion Javascript解决方案:空数组返回错误_Javascript_Arrays_For Loop_Rotation - Fatal编程技术网

CodCrotion Javascript解决方案:空数组返回错误

CodCrotion Javascript解决方案:空数组返回错误,javascript,arrays,for-loop,rotation,Javascript,Arrays,For Loop,Rotation,我在试着用密码解。我的解决方案通过了所有测试,只有一个参数为空数组和旋转1。我不知怎么搞不懂如何解决这个问题。有人能把我推到正确的方向吗?除了为空数组检查编写特定的if子句之外。我想不出一个更优雅的解决办法 function solution(A, K) { for (i=0; i<K; i++) { A.unshift(A.pop()); } return A; } 函数解(A,K) { 对于(i=0;i试试这个: let solutio

我在试着用密码解。我的解决方案通过了所有测试,只有一个参数为空数组和旋转1。我不知怎么搞不懂如何解决这个问题。有人能把我推到正确的方向吗?除了为空数组检查编写特定的
if
子句之外。我想不出一个更优雅的解决办法

function solution(A, K)
{
    for (i=0; i<K; i++)
    {
        A.unshift(A.pop());
    }
    return A;
}
函数解(A,K)
{
对于(i=0;i试试这个:

let solution = (A, K) => {
    for (i=0; i<K; i++){
        A.unshift(A.pop());
    }
    return A[0] != undefined ? A : [];
}
let solution=(A,K)=>{
对于(i=0;i试试这个:

let solution = (A, K) => {
    for (i=0; i<K; i++){
        A.unshift(A.pop());
    }
    return A[0] != undefined ? A : [];
}
let solution=(A,K)=>{

对于(i=0;i一种解决方案是在循环
条件
部分检查
A.length

函数解(A,K)
{
对于(i=0;i
.as控制台{背景色:黑色!重要;颜色:石灰;}

.作为控制台包装{max height:100%!important;top:0;}
一个解决方案是在循环
条件
部分检查
A.length

函数解(A,K)
{
对于(i=0;i
.as控制台{背景色:黑色!重要;颜色:石灰;}

.作为控制台包装{最大高度:100%!重要;顶部:0;}
解决这个问题的另一种方法是通过递归。在这种情况下,您可以使用
if
语句,但是,这可以作为终止递归调用的基本情况。这里的基本情况是if
K===0
这意味着如果我们不再需要旋转数组,则返回数组。它还有另一个如果
!A.length
返回数组的部分。这意味着如果数组为空,也返回当前数组

函数解(A,K){
如果(K==0 | |!A.length)返回A;
返回溶液([A.pop(),…A],K-1);
}
log(解决方案([1,2,3,4],2));//[3,4,1,2]

console.log(解决方案([],10));//[]
解决这个问题的另一种方法是通过递归。在这种情况下,您可以使用
if
语句,但是,这可以作为终止递归调用的基本情况。这里的基本情况是if
K===0
这意味着如果我们不再需要旋转数组,则返回数组。它还有另一个如果
!A.length
返回数组的部分。这意味着如果数组为空,也返回当前数组

函数解(A,K){
如果(K==0 | |!A.length)返回A;
返回溶液([A.pop(),…A],K-1);
}
log(解决方案([1,2,3,4],2));//[3,4,1,2]

console.log(解决方案([],10));//[]
另一个获得100%全面支持的替代方案:

function solution(A, K) {
    const k = K % A.length; // in case the rotation is bigger than the length of the array
    if (K === 0 || k === 0) {
      return A;
    }
    const head = A.slice(0, A.length - k);
    const tail = A.slice(A.length - k, A.length);
    return [...tail, ...head];
}

另一个获得100%全面支持的替代方案:

function solution(A, K) {
    const k = K % A.length; // in case the rotation is bigger than the length of the array
    if (K === 0 || k === 0) {
      return A;
    }
    const head = A.slice(0, A.length - k);
    const tail = A.slice(A.length - k, A.length);
    return [...tail, ...head];
}
刚刚拿到100%

function cyclicRotation(A, K){
    K = K % A.length
    let sliceA = A.slice(A.length-K, A.length)
    let sliceB = A.slice(0, A.length-K)
    return sliceA.concat(sliceB)
}
刚刚拿到100%

function cyclicRotation(A, K){
    K = K % A.length
    let sliceA = A.slice(A.length-K, A.length)
    let sliceB = A.slice(0, A.length-K)
    return sliceA.concat(sliceB)
}

我认为你应该检查数组是否如它所说的那样是空的,如果是空的,那么返回数组本身就是空的。为什么你不想使用
if语句呢?我想我可能会想得太多,因为我是一个新手。这样的解决方案在专业开发领域中可以接受吗?我认为你应该检查数组是否如它所说的那样是空的如果是,则返回数组本身为空。为什么您不想使用
if语句
?我想我可能会想得太多,因为我是一个新手。这样的解决方案在专业开发领域可以接受吗?哦,我喜欢这样one@NikaBo如果这回答了你的问题,你应该把它标记为回答我喜欢这个吗one@NikaBo如果这回答您的问题您应该将其标记为answeredNice递归方法和解释,+1!但是,我不知道OP是否能理解这种方式。@Shidersz谢谢:)是的,我同意,如果OP以前没有见过递归,这可能有点难以理解。我想这只是实现同样事情的另一种方式。我熟悉递归,但它绝对不是我的强项。我将不得不花一段时间仔细思考这个答案,以确保我理解这里发生的事情。我感谢challenge@NikaBo递归很难理解。它确实需要练习;)很好的递归方法和解释,+1!但是,我不知道OP是否能理解这种方式。@Shidersz谢谢:)是的,我同意,如果OP以前没有见过递归,这可能有点难以理解。我想这只是实现同样事情的另一种方式。我熟悉递归,但它绝对不是我的强项。我将不得不花一段时间仔细思考这个答案,以确保我理解这里发生的事情。我感谢challenge@NikaBo递归可能很难理解。它确实需要练习;)