javascript - js 二維數(shù)組比較大小問題。
問題描述
報(bào)錯(cuò):Uncaught TypeError: Cannot read property ’1’ of undefined
console.log()能訪問到數(shù)字,為什么比較時(shí)就會(huì)出錯(cuò)?
<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>
問題解答
回答1:這個(gè)報(bào)錯(cuò)是溢出數(shù)組,現(xiàn)在data.length=6,當(dāng)i=5是,i+1=6就溢出了。<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>
這樣就不會(huì)報(bào)錯(cuò)了。
回答2:你可以這樣寫:
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];回答3:
因?yàn)閿?shù)組越界了,當(dāng)i = data.length - 1的時(shí)候, data[i+1][1]訪問的就是 data[6][1],data[6]其實(shí)是沒有的,因?yàn)樗畲蟮牟攀莇ata[5], 說的有點(diǎn)亂,不知道能看懂不
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.3. css - 定位為absolute的父元素中的子元素 如何設(shè)置在父元素的下面?4. javascript - angualr2中emit觸發(fā)一個(gè)方法然后怎么獲得這個(gè)promise的結(jié)果5. java - 請(qǐng)問在main方法中寫成對(duì)象名.屬性()并賦值,與直接參參數(shù)賦值輸錯(cuò)誤是什么原因?6. mysql里的大表用mycat做水平拆分,是不是要先手動(dòng)分好,再配置mycat7. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫入日志信息。8. javascript - 圖片鏈接請(qǐng)求一直是pending狀態(tài),導(dǎo)致頁面崩潰,怎么解決?9. python - beautifulsoup獲取網(wǎng)頁內(nèi)容的問題10. 怎么用css截取字符?
