Javascript 代码在不同的环境中表现不同

Javascript 代码在不同的环境中表现不同,javascript,compiler-errors,ide,Javascript,Compiler Errors,Ide,我一直在为即将到来的考试而学习,遇到了一些奇怪的事情。 以下是问题提示: 你有一个时装目录,一个来自不同高级时装设计师的物品清单。每个设计师都有一系列的鞋子。每只鞋都有名字和价格 看起来是这样的: var currentInventory = [ { name: 'Brunello Cucinelli', shoes: [ {name: 'tasselled black low-top lace-up', price: 1000}, {name: '

我一直在为即将到来的考试而学习,遇到了一些奇怪的事情。 以下是问题提示:

你有一个时装目录,一个来自不同高级时装设计师的物品清单。每个设计师都有一系列的鞋子。每只鞋都有名字和价格

看起来是这样的:

 var currentInventory = [
  {
    name: 'Brunello Cucinelli',
    shoes: [
      {name: 'tasselled black low-top lace-up', price: 1000},
      {name: 'tasselled green low-top lace-up', price: 1100},
      {name: 'plain beige suede moccasin', price: 950},
      {name: 'plain olive suede moccasin', price: 1050}
    ]
  },
  {
    name: 'Gucci',
    shoes: [
      {name: 'red leather laced sneakers', price: 800},
      {name: 'black leather laced sneakers', price: 900}
    ]
  }
]; 
您的函数应以以下格式返回每个设计师所有鞋子的平均成本:

var expected = {
  'designers': [
    {
      'name': 'Brunello Cucinelli',
      'averagePrice': 1025
    },
    {
      'name': 'Gucci',
      'averagePrice': 850
    }
  ]
};
我已经编写了一些代码,无论是在Repl.it上运行还是在hack reactor practice考试网站上运行,其行为都有所不同。这是我的密码:

function calculateAveragePricePerDesigner(inventory) {
  var result = {designers: []};
  var parsedDesignerAverageCost = [];
  for (i = 0; i < inventory.length; i++) {
    parsedDesignerAverageCost.push(parseAverageCostPerDesigner(inventory[i]));
    console.log(parsedDesignerAverageCost);
  }
  result.designers = parsedDesignerAverageCost;
  return result;
}


function parseAverageCostPerDesigner(currentDesigner) {
  var currentShoes = currentDesigner.shoes;
  var result = {
    name: currentDesigner.name,
    averagePrice: 0
  };
  var cummulativeCost = 0;
  var numOfShoes = currentShoes.length;
  for (i = 0; i < numOfShoes; i++) {
    cummulativeCost += currentDesigner.shoes[i].price;

  }
  var average = cummulativeCost / numOfShoes;
  result.averagePrice = average;
  return result;
}
函数计算RagePricePerDesigner(库存){
var result={designers:[]};
var parsedDesignerAverageCost=[];
对于(i=0;i
是否有人能够解释我的代码是否正确,以及为什么会出现不一致?在Repl.it上,我的代码将编译,但不会以我无法解释的方式运行,在hack reactor网站上,它也不会编译。 T 谢谢

您在这里有一个小小的“错误”:

这可能与用于测试代码的示例数据有关


下面是我写这整件事的方式:

 function averagePrice(shoes) {
   let sum = 0;
   for(const shoe of shoes)
      sum += shoe.price;
   return sum / shoes.length;
 }

 function task(designers) {
   let result = [];
   for(const designer of designers) {
     result.push({ name: designer.name, averagePrice: averagePrice(designer.shoes) });
    }
    return result;
 }

你能链接到没有编译的站点,让我们自己看看问题吗?任何显示的错误?
i
是一个全局变量。。。它肯定不是一个。。。
 for (var i = 0; i < numOfShoes; i++) {
 function averagePrice(shoes) {
   let sum = 0;
   for(const shoe of shoes)
      sum += shoe.price;
   return sum / shoes.length;
 }

 function task(designers) {
   let result = [];
   for(const designer of designers) {
     result.push({ name: designer.name, averagePrice: averagePrice(designer.shoes) });
    }
    return result;
 }