Javascript 如何访问数组对象并使用新创建的函数再次调用它们?以问题代码为例

Javascript 如何访问数组对象并使用新创建的函数再次调用它们?以问题代码为例,javascript,Javascript,有人能告诉我这些JavaScript程序涉及哪些问题吗? 非常感谢您的建议和指正 有一个数组。应从该数组中创建三个函数。 编写以下三个函数。三者都应该使用火山 数组来确定要返回的内容 GetVactorByName-此函数需要一个字符串作为参数 并返回火山数组中name属性相等的对象 传递给它的字符串(如果有) GetVolcanesByCountry-此函数需要一个字符串作为参数和 返回一个数组,其中包含火山数组中 国家属性等于传递给它的字符串 getAverageHeight-此函数返回所有

有人能告诉我这些JavaScript程序涉及哪些问题吗? 非常感谢您的建议和指正

有一个数组。应从该数组中创建三个函数。 编写以下三个函数。三者都应该使用火山 数组来确定要返回的内容

GetVactorByName-此函数需要一个字符串作为参数 并返回火山数组中name属性相等的对象 传递给它的字符串(如果有)

GetVolcanesByCountry-此函数需要一个字符串作为参数和 返回一个数组,其中包含火山数组中 国家属性等于传递给它的字符串

getAverageHeight-此函数返回所有对象的平均高度 阵列中的火山

let火山=[
createVolcano(“埃亚菲亚德拉火山”,“冰岛”,1651年),
createVolcano('Krakatoa','Indonesia',2850),
createVolcano('Manua Loa','USA',4169),
createVolcano(‘埃特纳山’、‘意大利’、3326),
createVolcano(‘富士山’、‘日本’、3778),
createVolcano('圣海伦斯山','美国',2549年),
createVolcano('维苏威火山','意大利',1281年)
];
函数getByName(){
对于(var i=0;i{
归国
});
}
函数getAverageHeight(高度米){
var总和=0;
对于(var i=0;i<火山。高度米。长度;i++){
总和+=火山。高度米[i];
}

}
以下是一些有关函数的资源

让我们实现缺失的factory
createVolcano
,一个用于组装/构建/创建并返回对象的函数

function createVolcano(name, country, currentHeight) {
  return {
    name,
    country,
    heightInMeters: currentHeight,
  };
}
让我们继续阅读,特别是关于如何做

在下一步中,我们将实现
getVactorByName
,它将基于根据特定条件对实例中的项进行排序

function getVolcanoByName(list, value) {
  return list.find(({ name }) => name === value);
}
然后,我们开始实现
getVactoresByCountry
,它将基于对给定数组中的一个或多个项进行筛选(同样是根据条件),返回一个新数组,其中只包含筛选的项

最后,我们将计算
getAverageVolcanoHeight
,在这里我们将使用它来汇总列表中所有火山项目的总高度。结果(总高度)立即除以计算中涉及的火山项目数量

function getAverageVolcanoeHeight(list) {
  return (list.reduce((total, { heightInMeters }) =>

    (total + heightInMeters), 0

  ) / list.length);
}
结合OP的示例,您可以运行和测试上述实现/提供的代码

函数名(列表,值){ 返回list.find(({name})=>name==value); } 函数GetVactoresByCountry(列表,值){ 返回list.filter(({country})=>country==value); } 函数GetAverageFireheight(列表){ return(list.reduce((总计,{heightInMeters})=> (总高度+高度米),0 )/list.length); } 函数(名称、国家/地区、当前高度){ 返回{ 名称 国家,, 高度计:当前高度, }; } 常量火山学家=[ createVolcano(“埃亚菲亚德拉火山”,“冰岛”,1651年), createVolcano('Krakatoa','Indonesia',2850), createVolcano('Manua Loa','USA',4169), createVolcano(‘埃特纳山’、‘意大利’、3326), createVolcano(‘富士山’、‘日本’、3778), createVolcano('圣海伦斯山','美国',2549年), createVolcano(“维苏威火山”,“意大利”,1281年), ]; console.log({火山列表}); console.log( “GetVactorByName(火山学家,“圣海伦斯山”)…”, GetVactorByName(火山学家,“圣海伦斯山”) ); console.log( “getVolcanoByName(火山列表)…”, getVolcanoByName(火山列表) ); console.log( “GetVactoresByCountry(意大利火山列表”), GetVactoresByCountry(意大利火山列表) ); console.log( “GetVolcanesByCountry(火山列表)…”, GetVactoresByCountry(火山列表) ); console.log( “获取平均火山高度(火山列表)…”, 获取平均火山高度(火山列表) );
.as控制台包装{min height:100%!important;top:0;}
第一个问题是从未定义过
createVolcano
。您的问题是,您需要帮助为这个问题创建正确的函数吗?谢谢您的评论。你能给我解释一下什么是解决问题的最好方法吗?如果你能告诉我们问题是什么,事实上会好得多。这与告诉你的汽车修理工汽车发出噪音是一样的,这可能是很多事情。运行代码时应该有错误。这些错误会显示在浏览器的开发人员控制台中。通过这些错误,您可以了解出了什么问题。用搜索引擎查找错误。很可能是其他人遇到了同样的问题并找到了解决方案。如果运行上面的代码段,您将看到第一个错误。您尝试了什么(上面的代码实际上是自己尝试的结果)?你被困在哪里了?为观众(/问题)提供工厂功能的实现如何?非常好且详细的解释!感谢您提供的友好建议和可理解的提示!@彼得·塞利格:他是一个非常好的程序员,在这个领域有很好的教学能力。他的回答真的很有帮助,也有助于理解。
function getAverageVolcanoeHeight(list) {
  return (list.reduce((total, { heightInMeters }) =>

    (total + heightInMeters), 0

  ) / list.length);
}