javascript - 对解析的 JSON 值的计算产生 NaN
问题描述
我对某些代码有疑问。我开始为 Chroma 构建一个插件以使用 JSON 插入数据,但向我显示的是 NaN。
我的文件 content.js
var xmlhttp = new XMLHttpRequest();
var url = "http://rlinkit.neteasy.pl/abc.json";
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myArr= Array();
var myArr = JSON.parse(this.responseText);
myFunction(myArr);
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
function myFunction(arr) {
for (i in arr) {
for(j in arr[i] ){
for(p in arr[i][j]){
out = arr[i][j][p].currency + arr[i][j][p].code + arr[i][j][p].bid + arr[i][j][p].ask + '<br>';
}
}
}
document.getElementById("id01").innerHTML = out;
}
我的代码HTML:
<div id="id01"></div>
<script src="content.js"></script>
我的输出:
编辑(当我给出代码时 - 没有显示任何内容。):
function myFunction(arr) {
var out = "";
var i;
var j;
var p;
for (var i = 0; i in arr.length; i++) {
for(var j = 0; j in arr[i].length; j++ ){
for(var p = 0; p in arr[i][j].length; p++){
out += arr[i][j][p].currency + arr[i][j][p].code + arr[i][j][p].buy + arr[i][j][p].sell + '<br>';
}
}
}
document.getElementById("id01").innerHTML = out;
}
解决方案
要遍历 JavaScript 数组,可以使用for ... of循环或传统的 for循环。更新函数中的语法(特别i in arr.length
是 )是无效的 JavaScript(看起来像 Python?)。
提供示例数据将有助于改进此答案,但请尝试以下某些版本(已更新为使用 ES6let
语法,您可能希望恢复为var
):
function myFunction(arr) {
let out = "";
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].length; j++) {
for (let p = 0; p < arr[i][j].length; p++) {
out += arr[i][j][p].currency + arr[i][j][p].code + arr[i][j][p].buy + arr[i][j][p].sell + "<br>";
}
}
}
document.getElementById("id01").innerHTML = out;
}
推荐阅读
- java - Junit跳过对函数的调用进入另一个问题
- javascript - 在递归函数中使用 Javascript 计时器时是否会释放它们?
- selenium - 如何在 IntelliJ 中重命名 Cucumber 特征文件中的步骤和注释?
- php - 比较两个关联数组值并替换它们
- python - 如何根据索引位置标准化 Pandas 数据框中的值?
- haskell - 如何在 ghci 中加载包含空格的模块
- excel - 为什么在表格中将文本转换为数字要慢得多?
- sql - 如何从 R 中的 SQL 导出数据
- javascript - 打字。如何让内容不下移?
- hive - 如何在 Cloudera 中建立 Grafana 和 Hive 连接