javascript - Problème de comparaison de taille de tableau bidimensionnel js.
PHP中文网
PHP中文网 2017-06-26 10:55:26
0
3
877

Erreur : Type d'erreur non intercepté : Impossible de lire la propriété '1' de non défini

console.log() peut accéder aux nombres, pourquoi une erreur se produit-elle lors de la comparaison ?

<p id="abc">aaaaaa</p>
<script>
    var data = [
      ["北京", 10],
      ["上海", 20],
      ["福州", 30],
      ["广州", 40],
      ["成都", 40],
      ["西安", 100]
    ];

    var abc = document.getElementById('abc');
    j = 0;
    for (var i = 0; i < data.length; i++) {
        console.log(data[i][1]);
        if (data[i][1] > data[i+1][1]) {
            j++;
        };
    }

    abc.innerHTML = j;
</script>
PHP中文网
PHP中文网

认证0级讲师

répondre à tous(3)
小葫芦

Cette erreur est un tableau de débordement. Maintenant data.length=6 Lorsque i=5, i+1=6 déborde.
<p id="abc">aaaaaa</p>
<script>

var data = [
  ["北京", 10],
  ["上海", 20],
  ["福州", 30],
  ["广州", 40],
  ["成都", 40],
  ["西安", 100]
];

var abc = document.getElementById('abc');
j = 0;
for (var i = 0; i < data.length; i++) {
    console.log(data[i][1]);
    if(i<data.length-1){
        if (data[i][1] > data[i+1][1]) {
            j++;
        };
    }
}

abc.innerHTML = j;

</script>

De cette façon, il n’y aura aucune erreur.

淡淡烟草味

Vous pouvez écrire comme ceci :

var data = [
    ["北京", 10],
    ["上海", 20],
    ["福州", 30],
    ["广州", 40],
    ["成都", 40],
    ["西安", 100]
];
var abc = document.getElementById('abc');
var j = 0;
var max = data[0][1];
for (let i = 1; i < data.length; i++) {
    let temp = data[i][1];
    
    if (temp > max) {
        j = i;
        max = temp;
    }
}
abc.innerHTML = data[j][0];
淡淡烟草味
因为数组越界了,当i = data.length - 1的时候, data[i+1][1]访问的就是 data[6][1],data[6]其实是没有的,因为他最大的才是data[5], 说的有点乱,不知道能看懂不
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!