因此,我无法从函数中保留值。
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/