gpt4 book ai didi

javascript - JSON JavaScript 访问数据

转载 作者:行者123 更新时间:2023-12-03 03:13:11 26 4
gpt4 key购买 nike

我正在阅读《Eloquent JavaScript:现代编程入门》一书的第 5 章。我在网上找到了这个 JSON,我的目标是运用我从书中学到的知识。我对 Java 有一些背景,但是因为 JavaScript 是一种松散类型的语言,声明和解析有点令人困惑。 coma 中的代码确实可以编译,但循环内的代码却不能编译。虽然这显然是错误的,但根据我的逻辑,这行代码不应该在循环内部或外部循环中产生不同的结果。是逻辑错误还是语法错误?

我遇到的错误是:

Cannot read property 'died' of undefined

var DATA = "[\n  " + [
'{"name": "Carolus Haverbeke", "sex": "m", "born": 1832, "died": 1905,
"father": "Carel Haverbeke", "mother": "Maria van Brussel"}',
'{"name": "Emma de Milliano", "sex": "f", "born": 1876, "died": 1956,
"father": "Petrus de Milliano", "mother": "Sophia van Damme"}',
'{"name": "Maria de Rycke", "sex": "f", "born": 1683, "died": 1724,
"father": "Frederik de Rycke", "mother": "Laurentia van Vlaenderen"}',
'{"name": "Jan van Brussel", "sex": "m", "born": 1714, "died": 1748,
"father": "Jacobus van Brussel", "mother": "Joanna van Rooten"}',
'{"name": "Philibert Haverbeke", "sex": "m", "born": 1907, "died": 1997,
"father": "Emile Haverbeke", "mother": "Emma de Milliano"}',
'{"name": "Jan Frans van Brussel", "sex": "m", "born": 1761, "died": 1833,
"father": "Jacobus Bernardus van Brussel", "mother":null}',
'{"name": "Pauwels van Haverbeke", "sex": "m", "born": 1535, "died": 1582,
"father": "N. van Haverbeke", "mother":null}',
'{"name": "Clara Aernoudts", "sex": "f", "born": 1918, "died": 2012,
"father": "Henry Aernoudts", "mother": "Sidonie Coene"}',
'{"name": "Emile Haverbeke", "sex": "m", "born": 1877, "died": 1968,
"father": "Carolus Haverbeke", "mother": "Maria Sturm"}',
'{"name": "Lieven de Causmaecker", "sex": "m", "born": 1696, "died": 1724,
"father": "Carel de Causmaecker", "mother": "Joanna Claes"}',
'{"name": "Pieter Haverbeke", "sex": "m", "born": 1602, "died": 1642,
"father": "Lieven van Haverbeke", "mother":null}',
'{"name": "Jacobus Bernardus van Brussel", "sex": "m", "born": 1736, "died":
1809, "father": "Jan van Brussel", "mother": "Elisabeth Haverbeke"}'
].join(",\n ") + "\n]";

if (typeof module != "undefined" && module.exports)
module.exports = DATA;

function Search() {
// console.log(result[1].born);
var result = JSON.parse(DATA);
var a1,a2;

for(var i=0; i<result.length;i++)
{
a2= +result[i].died;
a1 = +result[i].born;

if(a1 >= 1800 && ((a2-a1) <=40))
{
console.log(result[i].name);
}
}
}

最佳答案

1 - 不是“死了”而是“死了”,你只是误读了..

2 - 尝试过滤

console.log(result[i]);
if(result[i].died && result[i].born){
a2= +result[i].died;
a1 = +result[i].born;
}

3 - 你的循环太过分了,改变它 for(var i=0; i < result.length - 1;i++)

关于javascript - JSON JavaScript 访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46880457/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com