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;
}