存储JS中函数的值

时间:2013-07-14 04:50:50

标签: javascript function storing-data

所以,我无法保留函数的值。

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.

1 个答案:

答案 0 :(得分: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);