创建 JavaScript 函数以根据某些信息计算价格(示例 - 商店报价)

标签 javascript arrays

我有一个数组[2,5,1]$,它是价格,客户为第一个项目支付2$,因为第一个项目没有折扣, 5-2 = 3 对于第二项, min(第一项,第二项) min(2,5) = 2 对于第三项;但如果下一个项目的成本低于第二个项目,例如1 小于 2 成本为零;

so 2+3+0 is output of calculate price.

如果我还有一个输入

[2,5,1,6]
2 + (5-2) + 0 + (6 - min(2,5,1))

我如何才能实现这一目标 -

我试图写这样的东西 -

function calculateAmount(prices) {
    // Write your code here
    var totalCostPurchase;
    var cost = [];
    var zero = 0;
    for (var i = 0; i < prices.length; i++) {
        if (i === 0) {
            cost.push(prices[i]);    
        } else if (i === 1) {
            cost.push(prices[i] - cost[i - 1]);
        } else {
            var minCost = Math.min(...prices.slice(0,i));
            console.log(minCost);
            if (minCost > prices[i]) {
                cost.push(zero);
            } else {
                cost.push(prices[i] - minCost);
            }
        } 
    }
    totalCostPurchase = cost.reduce((a, b) => a + b, 0);
    console.log(totalCostPurchase);
    return totalCostPurchase;
}

Please guide.

最佳答案

您可以为此使用Array.mapArray.reduce

var a = [2,5,1,6]

let res = a.map((d,i) => i != 0 
              ? d - Math.min(...a.slice(0, i+1))
              : d)
           .reduce((x, y) => x + y)
             

console.log(res)

关于创建 JavaScript 函数以根据某些信息计算价格(示例 - 商店报价),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53465237/

相关文章:

c# - 如何将字符串字符转换为整数数组

javascript - react 工具 : Is Babel-CLI needed when I use Browserify with Babelify?

页面加载代码上的 Javascript 使其重新加载 chrome 扩展

Javascript:多个过滤器和多个 div

javascript - 如何在 keydown 事件上使用 id-name?

python - 使用 numpy 比较并查找两个不同大小的数组之间的错误

javascript - 回调函数中的`this`

Java:将整数数组划分为具有随机值的子数组?

c++ - 二维数组中元素的地址

Java 代码将新对象的先前条目覆盖到队列数组中