JSON JavaScript访问数据

JSON JavaScript访问数据,javascript,html,Javascript,Html,我正在阅读《雄辩的JavaScript:现代编程入门》第5章。我在网上找到了这个JSON,我的目标是练习我从书中学到的东西。不过,我对Java有一定的背景知识,因为JavaScript是一种松散类型的语言,声明和解析有点混乱。coma中的代码可以编译,但循环中的代码不能编译。虽然这显然是错误的,但按照我的逻辑,代码行不应该使循环内部或外部不同。逻辑错误还是语法错误 我得到的错误是: 无法读取未定义的属性“死亡” var DATA=“[\n”+[ “{”姓名“:”卡洛斯·哈弗贝克“,”性别“:”m

我正在阅读《雄辩的JavaScript:现代编程入门》第5章。我在网上找到了这个JSON,我的目标是练习我从书中学到的东西。不过,我对Java有一定的背景知识,因为JavaScript是一种松散类型的语言,声明和解析有点混乱。coma中的代码可以编译,但循环中的代码不能编译。虽然这显然是错误的,但按照我的逻辑,代码行不应该使循环内部或外部不同。逻辑错误还是语法错误

我得到的错误是:

无法读取未定义的属性“死亡”

var DATA=“[\n”+[
“{”姓名“:”卡洛斯·哈弗贝克“,”性别“:”m“,”出生“:”1832“,”死亡“:”1905,
“父亲”:“Carel Haverbeke”,“母亲”:“Maria van Brussel”},
“{”姓名“:“Emma de Milliano”,“性别“:“f”,“出生”:1876,“死亡”:1956,
“父亲”:“佩特罗斯·德米利亚诺”,“母亲”:“索菲亚·范达姆”},
{“姓名”:“Maria de Rycke”,“性别”:“f”,“出生”:1683,“死亡”:1724,
“父亲”:“Frederik de Rycke”,“母亲”:“Laurentia van Vlaenderen”},
“{”姓名“:”扬·范·布鲁塞尔“,”性别“:”m“,”出生“:1714“,”死亡“:1748,
“父亲”:“雅各布斯·范·布鲁塞尔”,“母亲”:“乔安娜·范·罗滕”},
{“姓名”:“菲利普·哈弗贝克”,“性别”:“m”,“出生”:1907,“死亡”:1997,
“父亲”:“埃米尔·哈弗贝克”,“母亲”:“埃玛·德·米利亚诺”},
“{”姓名“:“Jan Frans van Brussel”,“性别“:“m”,“出生”:1761,“死亡”:1833,
“父亲”:“Jacobus Bernardus van Brussel”,“母亲”:null},
{“姓名”:“Pauwels van Haverbeke”,“性别”:“m”,“出生”:1535,“死亡”:1582,
“父亲”:“N.van Haverbeke”,“母亲”:null},
“{”姓名“:”克拉拉·艾尔努兹“,”性别“:”f“,”出生:1918,“死亡”:2012,
“父亲”:“亨利·艾尔努兹”,“母亲”:“西多尼·科恩”},
{“姓名”:“埃米尔·哈弗贝克”,“性别”:“m”,“出生”:1877,“死亡”:1968,
“父亲”:“Carolus Haverbeke”,“母亲”:“Maria Sturm”},
{“姓名”:“Lieven de Causmaecker”,“性别”:“m”,“出生”:1696,“死亡”:1724,
“父亲”:“Carel de Causmaecker”,“母亲”:“Joanna Claes”},
{“姓名”:“Pieter Haverbeke”,“性别”:“m”,“出生”:1602,“死亡”:1642,
“父亲”:“Lieven van Haverbeke”,“母亲”:null},
{“姓名”:“雅各布斯·贝尔纳德斯·范布鲁塞尔”,“性别”:“m”,“出生”:1736,“死亡”:
1809年,“父亲”:“扬·凡·布鲁塞尔”,“母亲”:“伊丽莎白·哈弗贝克”}
].join(“,\n”)+“\n]”;
if(模块类型!=“未定义”&&module.exports)
module.exports=数据;
函数搜索(){
//console.log(结果[1].born);
var result=JSON.parse(数据);
变量a1、a2;
对于(var i=0;i=1800&((a2-a1)1-它不是“死”而是“死”,你只是误读了

2-尝试过滤

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

3-您的循环走得太远,请将其更改为(var i=0;i

您有一个错误

for(var i=0; i<=result.length;i++)
{
   ...
} 

用于(var i=0;iit的
dead
not
dead
…进行了更改,同样的问题,属性无法读取。
i
i
这很有意义。请添加注释,不确定您刚才做了什么。在书中没有看到+result.。
+
parseInt
的捷径有趣,您所说的过滤器是什么意思?过滤方法?你可以用左边的复选图标接受我的答案;-)Thx。你确定我的逻辑正确吗?我得到的结果是错误的,没有看到。考虑过将其更改为I=1,但数组索引从0开始。
for(var i=0; i<=result.length;i++)
{
   ...
}