2015-04-28 2 views
1

Использование Javascript, мне нужно создать матричную таблицу, которая выглядит как ниже матрицы: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; 
     } 
    } 
} 
+3

'i = j' присваивает значение' j' 'i'. Если вы хотите сравнить, то вам нужно сделать 'i === j' – thefourtheye

+0

Ум, если я спрошу, в чем смысл использования address.length вместо 4? – dman2306

+0

dman, это всего лишь тест, в итоге у меня будет больше 25. Он все еще не работает: http://jsfiddle.net/anna5xp6/1/ –

ответ

3

У вас есть 2 проблемы в сценарии

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) 

Если if..else может быть заменен на тройной оператор

for (j = 0; j < address.length; j++) { 
    arr[i][j] = i == j ? 0 : 1; 
} 

Демонстрация: Fiddle

Смежные вопросы