Javascript将值分配到多维数组中

Javascript将值分配到多维数组中,javascript,arrays,if-statement,for-loop,Javascript,Arrays,If Statement,For Loop,使用Javascript,我需要创建一个如下所示的矩阵表: 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 在我看来,下面的代码似乎应该是正确的,但是当我尝试输出arr[0][1]等时。。。没有价值显示。我是否在以下代码中出错: var address = [ "...", "....", ".....", "......" ]; var arr = []; for (i = 0; i < address.length; i++) { for (j =

使用Javascript,我需要创建一个如下所示的矩阵表:

0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
在我看来,下面的代码似乎应该是正确的,但是当我尝试输出arr[0][1]等时。。。没有价值显示。我是否在以下代码中出错:

var address = [
"...",
"....",
".....",
"......"

];

var arr = [];

for (i = 0; i < address.length; i++) 
{ 
    for (j = 0; j < address.length; j++) 
    { 
        //alert(i + " " + j);
        if (i=j)
        {
            arr[i][j]=0;
        }
        else
        {
            arr[i][j]=1;
        }
    }
}
var地址=[
"...",
"....",
".....",
"......"
];
var-arr=[];
对于(i=0;i
脚本中有两个问题

for (i = 0; i < address.length; i++) {
    //need to initialize arr[i] else `arr[i]` will return undefined
    arr[i]= [];
    for (j = 0; j < address.length; j++) {
        //need == not =
        if (i == j) {
            arr[i][j] = 0;
        } else {
            arr[i][j] = 1;
        }
    }
}

console.log(arr)

演示:

i=j
正在将
j
的值赋值给
i
。如果你想比较,那么你需要做
i===j
如果我问你,使用address.length而不是仅仅4有什么意义?德曼,这只是一个测试,最终我会有超过25个。它仍然不起作用:
for (j = 0; j < address.length; j++) {
    arr[i][j] = i == j ? 0 : 1;
}