2017-06-04 2 views
0

J'ai quelques problèmes avec les valeurs NaN dans mon tableau. Je peux afficher cette table, mais après l'opération de décrémentation (code en bas) quand je veux afficher les valeurs actualisées, je reçois tous les NaN. Je n'ai aucune idée de comment résoudre ce problème. J'apprécie toute aide.JS décrémente les valeurs de tableau existantes - Erreur NaN

script.js

[![var result = "<table border=1>"; 
    for (var i = 0; i < wymiar; i++) 
    { 
     result += "<tr>"; 
     for (var j = 0; j < wymiar; j++) 
     { 
      tablica\[i, j\] = Math.floor((Math.random() * 10) + 1); 
      result += "<td>"+tablica\[i,j\]+"</td>"; 
     } 
     result += "</tr>"; 
    } 
    result += "</table>"; 
    document.getElementById("macierzLosowa").innerHTML = result;][1]][1] 

var result1 = "<table border=1>"; 
    for (var i = 0; i < wymiar; i++) 
    { 
     result1 += "<tr>"; 
     for (var j = 0; j < wymiar; j++) 
     { 
      if (tablica[i, j] < minWWierszu[i]) 
      { 
       minWWierszu[i] = tablica[i, j]; 
      } 
     } 
     for (var j = 0; j < wymiar; j++) 
     { 
      tablica[i, j] -= minWWierszu[i]; 
      result1 += "<td>"+tablica[i,j]+"</td>"; 
     } 
     result1 += "</tr>"; 
    } 
    result1 += "</table>"; 
    document.getElementById("NajmniejszeWiersz").innerHTML = result1; 

index.html

<div id="NajmniejszeWiersz"></div> 

enter image description here

exemple en direct: https://jsfiddle.net/RadoszSzymon/aydr6bcm/2/

+0

Déboguer ......... –

+0

S'il vous plaît fournir un ** runnable ** [mcve]. – charlietfl

+0

Je mets à jour mon message avec un exemple en direct – Morgan

Répondre

0

Vous devez initialiser le tableau minWWierszu avec des valeurs numériques. Espérons que cette aide.

0

Il y a plusieurs bogues dans votre code. Les plus importants sont les suivants:

1) JS n'a pas de prise en charge des tableaux multi-dimensionnels comme vous en avez l'habitude. La façon de créer un tableau multidimensionnel est de créer un tableau de tableaux. L'accès à la cellule du tableau 2d doit également être tablica[i][j] plutôt que tablica[i, j]. La mauvaise fonctionne parce que , dans de nombreuses langues avec la syntaxe C-inspiré est en fait un opérateur valide retournant son deuxième argument. Ainsi tablica[i, j] est en fait la même chose que tablica[j] plutôt que l'accès à (i, j) cellule 2d-tableau

2) Vous initialisez minWKolumnie deux fois (et ne pas utiliser du tout), mais n'initialisez pas les valeurs de minWWierszu que vous utilisez réellement . Le code doit être

var minWWierszu = new Array(); 
var minWKolumnie = new Array(); 
var tablica = new Array(); 

for (var i = 0; i < wymiar; i++) 
{ 
    minWKolumnie[i] = Number.MAX_VALUE; 
    minWWierszu[i] = Number.MAX_VALUE; 
    tablica[i] = new Array(); 
} 

Notez que dans JS vous pouvez (beaucoup le font) utiliser simplement [] au lieu de new Array() pour créer un tableau vide.

Vous devez également init (suprisingly utilisé) jakas tableau 2D de manière similaire, mais que vous créez beaucoup plus tard la variable je l'ai mis dans la boucle suivante:

var jakas = new Array(); 
for (var i = 0; i < wymiar; i++) 
{ 
    jakas[i] = new Array(); 
    for (var j = 0; j < wymiar; j++) 
    { 
     jakas[i][j] = tablica[i][j]; 
    } 
} 

Une fois que vous résoudre ce problème, semble le code pour travailler, regardez le updated JS fiddle