0

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

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 给出了可接受的值,四。

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

但是,无论如何,这个值都是 0。

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

4

1 回答 1

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);
于 2013-07-14T05:05:36.350 回答