Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ForEach函数返回未定义的值以及预期的输出_Javascript - Fatal编程技术网

Javascript ForEach函数返回未定义的值以及预期的输出

Javascript ForEach函数返回未定义的值以及预期的输出,javascript,Javascript,我正在做一个javascript练习,其中我们应该使用ES6的元素,比如类、箭头函数等等。这个特殊的代码应该输出公园名称以及每个公园的树木密度数据 我可以将每个对象单独硬编码到控制台中,但我希望使我的解决方案尽可能具有可伸缩性并接近真实世界的应用程序。但是,我无法使TreeDedensityReport函数正常工作 类元素{ 建造商(名称、建造年份){ this.name=名称; this.yearbuild=yearbuild; } } 类公园扩展元素{ 建造商(名称、建造年份、树木、面积)

我正在做一个javascript练习,其中我们应该使用ES6的元素,比如类、箭头函数等等。这个特殊的代码应该输出公园名称以及每个公园的树木密度数据

我可以将每个对象单独硬编码到控制台中,但我希望使我的解决方案尽可能具有可伸缩性并接近真实世界的应用程序。但是,我无法使TreeDedensityReport函数正常工作

类元素{
建造商(名称、建造年份){
this.name=名称;
this.yearbuild=yearbuild;
}
}
类公园扩展元素{
建造商(名称、建造年份、树木、面积){
超级(名称、年份);
这个。树=树;
这个面积=面积;
this.treednesity=(()=>this.trees/this.area)();
this.parkAge=()=>new Date().getFullYear()-this.yearbuilded;
}
}
康斯特公园=[];
让parkAges=[];
parks.push(park1=新公园('Washington Park',1999,1440300));
parks.push(park2=新公园('Lincoln Park',1984,25501000));
parks.push(park3=新公园('Jefferson Park',2000,2000,455));
parkAges=parks.map(park=>park.parkAge());
让averageParkAge=(parkAges.reduce((总计,年龄)=>总计+年龄))/parkAges.length;
功能树状态报告(arr){
让我们来看一看;
arr.forEach(函数(元素){
让string=`${element.name}的树密度为${element.treednesity}\n`;
string1+=字符串;
});
返回字符串1;
}
console.log(`----PARKS报告----\n
我们的${parks.length}公园的平均年龄为${averageParkAge}年。\n${treeDensityReport(parks)}

`)
让string1
将string1定义为未定义。Javascript在连接字符串时会做一些有趣的事情,并最终以“未定义”的形式添加到字符串中

试试这个


让string1='

树的第一行,必须为string1
分配一个空字符串。
声明变量时,它是
未定义的
默认值

let string1-您尚未定义它,因此当您首次将字符串
+=
添加到它时,它会被强制为字符串
“undefined”
<代码>让string1=“”
park1=
创建一个隐式全局变量
park1
。既然你没有使用它,你可以简单地使用parks.push(newpark(…)非常感谢你,我就知道这很愚蠢。一旦系统允许,我会接受这个