2 回答

TA贡献1893条经验 获得超10个赞
节省额是根据第一个项目的成本与其他项目的单位成本进行比较得出的。
所以
percentage of savings = (1 - UnitCost / BaseUnitCost) * 100
因此,使用map来计算保存量,因为它是基本单位,所以跳过了第一个索引。
var prices = [57, 69, 90, 108, 142, 216, 344, 459, 670, 1134]
var quantity = [50, 100, 200, 300, 500, 1000, 2000, 3000, 5000, 10000]
var min = prices[0]/quantity[0]
var savings = prices.map((v, i) => i ? `Save ${Math.round((1-(v/quantity[i])/min)*100)}%` : '')
console.log(savings)

TA贡献1799条经验 获得超8个赞
您要首先根据数量和价格计算单位成本,然后从初始单位成本中计算出节省额:
function calcUnitCosts(quantities, prices){
if( quantities.length != prices.length ) throw 'Array sizes unequal';
var unitCosts = [];
for( var i = 0; i < prices.length; i++ ){
unitCosts.push(prices[i] / quantities[i]);
}
return unitCosts;
}
function calcCostSavings(baseUnitCost, remainingUnitCosts){
var costSavings = [];
remainingUnitCosts.forEach((unitCost) => {
costSavings.push((baseUnitCost - unitCost)/baseUnitCost)
})
return costSavings;
}
costSavings = calcCostSavings(unitCosts[0], unitCosts.slice(1))
添加回答
举报