因此,我无法从函数中保留值。

var A4 = 0;
var A1 = 1;
var A2 = 2;
var A3 = 3;
var ROW1 = [A1, A2, A3, A4];
function contains(a, obj) {
    var i = a.length;
    while (i--) {
       if (a[i] === obj) {
           return true;
       }
    }
    return false;
}


与给定变量一起使用时,此函数的接受值为4。

var InRow = function(cell, row) {
    cell = 1;
    if (contains(row, cell)) {
        cell = 2;
        if (contains(row, cell)) {
            cell = 3;
            if (contains(row, cell)) {
                cell = 4;
                if (contains(row, cell)) {
                    return false;
                } else {
                    cell = 4;
                }
            } else {
                cell = 3;
            }
        } else {
            cell = 2;
        }
} else {
    cell = 1;
    }
    console.log(cell)


该console.log给出了可接受的值4。

};
InRow(A4, ROW1);
console.log(A4);


但是,无论如何,该值都为0。

我想知道是否有任何方法可以存储第二个函数的值以供以后使用?即,使第二个console.log返回4。

最佳答案

您不能只返回值吗?还是我错过了什么?

var InRow = function(cell, row) {
    cell = 1;
    if (contains(row, cell)) {
        cell = 2;
        if (contains(row, cell)) {
            cell = 3;
            if (contains(row, cell)) {
                cell = 4;
                if (contains(row, cell)) {
                    return false;
                } else {
                    cell = 4;
                }
            } else {
                cell = 3;
            }
        } else {
            cell = 2;
        }
    } else {
        cell = 1;
    }
    return cell;
}


接着 :

var cell = InRow(A4, ROW1);
console.log(cell);


还有,将A4传递到函数中,然后将其覆盖为1的意义是什么?您可以将整个内容重写为此,并且将具有相同的效果。

var InRow = function(row) {
    var cell = 1;
    if (contains(row, cell)) {
        cell = 2;
        if (contains(row, cell)) {
            cell = 3;
            if (contains(row, cell)) {
                cell = 4;
                if (contains(row, cell)) {
                    return false;
                } else {
                    cell = 4;
                }
            } else {
                cell = 3;
            }
        } else {
            cell = 2;
        }
    } else {
        cell = 1;
    }
    return cell;
}

var cell = InRow(ROW1);
console.log(cell);

关于javascript - 从JS中的函数存储值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17636621/

10-14 15:09
查看更多