Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 左侧表达式无效_Javascript_Referenceerror - Fatal编程技术网

Javascript 左侧表达式无效

Javascript 左侧表达式无效,javascript,referenceerror,Javascript,Referenceerror,我正在试图找出我编写的底部函数无法正常工作的原因。每当我尝试测试它时,就会出现以下错误:uncaughtreferenceerror:后缀操作中的左侧表达式无效。我假设这是因为代码无法识别“x”字符串与变量x相同,一旦它在添加到x的值时被去掉引号。有人能帮我处理一下吗?如果没有,你能建议一些替代方法吗?提前谢谢 var grid=[[null,null,null], [null,null,null], [零,零,零]; 函数checkWin(){ VAL=[“x”,“o”]; var x=0;

我正在试图找出我编写的底部函数无法正常工作的原因。每当我尝试测试它时,就会出现以下错误:uncaughtreferenceerror:后缀操作中的左侧表达式无效。我假设这是因为代码无法识别“x”字符串与变量x相同,一旦它在添加到x的值时被去掉引号。有人能帮我处理一下吗?如果没有,你能建议一些替代方法吗?提前谢谢

var grid=[[null,null,null],
[null,null,null],
[零,零,零];
函数checkWin(){
VAL=[“x”,“o”];
var x=0;
VarO=0;
对于(变量k=0;k}
如何将数据放入如下对象中:

var _ = {
    x : 0,
    o : 0
};
_[value]++;
并按如下方式更改值:

var _ = {
    x : 0,
    o : 0
};
_[value]++;

我希望这会有所帮助。

以下使用对象。测试了不同的网格定义

var grid = [
    ["o", "x", "x"],
    ["o", "x", "x"],
    ["o", "", "o"]];

var grid = [
    ["o", "x", ""],
    ["x", "x", "x"],
    ["o", "o", ""]];

var grid = [
    ["x", "x", ""],
    ["o", "x", "o"],
    ["o", "o", "x"]];

var grid = [
    ["x", "x", "o"],
    ["x", "o", "x"],
    ["o", "x", "x"]];

checkWin(grid)      

function checkWin(grid) {

var vals = [{player: "x", value: 0}, {player: "o", value: 0}];

for (var k = 0; k < vals.length; k++) {
    for (var i = 0; i < 3; i++) {
        // check win by row
        vals[k].value = 0;
        // check win by col
        for (var j = 0; j < 3; j++) {
            if (grid[i][j] === vals[k].player) {
                vals[k].value++;
            }
        }
        if (vals[k].value === 3) {
            alert(vals[k].player + " wins by row " + (i+1));
            return vals[k].player;
        }
        // check win by col
        vals[k].value = 0;
        for (var j = 0; j < 3; j++) {
            // check col
            if (grid[j][i] === vals[k].player) {
                vals[k].value++;
                if (vals[k].value === 3) {
                    // break if you want to know what column won by
                    break;
                }
            }
        }
        if (vals[k].value === 3) {
            alert(vals[k].player + " wins by col " + (i+1));
            return vals[k].player;
        }
    }
}
// check win by diag l to r
for (var k = 0; k < vals.length; k++) {
    vals[k].value = 0;
    for (var i = 0; i < 3; i++) {
        if (grid[i][i] === vals[k].player) {
            vals[k].value++;
        }
    }
    if (vals[k].value === 3) {
        alert(vals[k].player + " wins by diag left to right!");
        return vals[k].player;
    }
}   
// check win by diag r to l
for (var k = 0; k < vals.length; k++) {
    vals[k].value = 0;
    for (var i = 0; i < 3; i++) {
        if (grid[i][2-i] === vals[k].player) {
            vals[k].value++;
        }
    }
    if (vals[k].value === 3) {
        alert(vals[k].player + " wins by diag right to left!");
        return vals[k].player;
        }
    }   
}
var网格=[
[“o”、“x”、“x”],
[“o”、“x”、“x”],
[“o”、“o”、“o”];
变量网格=[
[“o”、“x”、“x”],
[“x”、“x”、“x”],
[“o”、“o”、“o”];
变量网格=[
[“x”、“x”、“x”],
[“o”、“x”、“o”],
[“o”、“o”、“x”];
变量网格=[
[“x”、“x”、“o”],
[“x”、“o”、“x”],
[“o”、“x”、“x”];
checkWin(网格)
函数checkWin(网格){
var VAL=[{player:“x”,值:0},{player:“o”,值:0}];
对于(变量k=0;k
在表达式
(value.replace(/['']+/g',)++;
中,在
replace
之后将返回一个字符串。字符串不能递增/递减。使用
parseInt()
而不是删除引号。嘿,Tushar,我实际上正在深入研究这一点,看看你是否正确。我的印象是replace(/['“]+/g'”)将删除引号。@mseifert我尝试过parseInt(),但得到的是NaN。根据MDN,parseInt()的返回值是“从给定字符串解析的整数。如果第一个字符无法转换为数字,则返回NaN。”无论如何,谢谢!请从代码中删除多余的空行。@Tushar事实上,不是字符串不能递增,而是表达式不能递增。有几件小事我做了清理-例如,删除
x
y
变量,将VAL[x]的1个引用更改为
VAL[k]
,修复了
{player:“x”,值:0}
中的对象值,以及另一个修复。