簡體   English   中英

我不明白為什么這個函數的輸出是一個

[英]I don't understand why this function's output is one

這是一個用於在 (3*3) 矩陣中移動行的代碼。

const transY =(arr)=> {
    const arrtY = []; 
    for (let i = 1; i < 4; i++) {
        for (let j = 0; j < 3; j++) {
            if (i==3) {
                return arrtY.unshift(arr[3*0+j]);
            }
            return arrtY.push(arr[3*i+j]);
        }
    }
    return arrtY;
}

預期輸出(在數組中):


1  2  3       7  8  9       4  5  6
4  5  6  ==>  1  2  3  ==>  7  8  9 ==>  [...]
7  8  9       4  5  6       1  2  3

當我在控制台中登錄 arrtY 時,我只看到 1。

這是一個解決方案

const transY =(arr)=> {
    const arrtY = []; 
    function rowpush(i) {
        for (let j = 0; j < 3; j++) {
            arrtY.push(arr[3*i+j]);
        }
    }
    rowpush(2);
    rowpush(0);
    rowpush(1);
    return arrtY;
}

可能的解決方案:

 function transform(arr) { var res = []; for(var i = 6; res.length < 9; i = (i + 1) % 9) res.push(arr[i]); return res; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; console.log(JSON.stringify(arr)) arr = transform(arr); console.log(JSON.stringify(arr)) arr = transform(arr); console.log(JSON.stringify(arr))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM