JavaScript function to be create to calculate Price based on some info (example - store offers)

javascript shopping cart demo
create simple shopping cart using javascript
javascript examples with source code
shopping cart html code free
javascript examples for practice
json shopping cart example
vanilla javascript shopping cart
javascript array

I have an array [2,5,1]$ which is prices, Customer pays 2$ for the first item because no discount for first item, 5-2 = 3 for the second item, min(1st item, 2nd item) min(2,5) = 2 for 3rd Item; but if next item is lesser in cost compared to second item e.g. 1 is less 2 the cost will be zero;

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

If i have one more input

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

How I can achieve this -

I was trying to write something like this -

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.

You can use Array.map and Array.reduce for this

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)

Vue.js 2.x by Example: Example-driven guide to build web apps with , Example-driven guide to build web apps with Vue.js for beginners Mike Street Store the product price 321 Wiring up the ordering 323 Creating Vuex getters 325 Building the filtering component based on products 330 Dynamically creating 348 Adding product information to the store 350 Creating the store mutation to  Javascript total Price calculation. I need to create a very basic function that calculates the cost when a user clicks the button. Suppose there are three customers that want to travel; once they click on the button and select the number of people and a location then they should see their total cost for that location.

You can use reduce where the accumulator keeps track of the sum and min and updates based on your rules:

function total(prices) {
  return prices.reduce(([sum, min], p, i) => {
    if (i === 0) return [p, p];
    let newSum = sum;
    if (p >= min) newSum += p - min;
    return [newSum, Math.min(p, min)];
  }, [])[0];
}


console.log(total([2, 5, 1]));
console.log(total([2, 5, 1, 6]));

JavaScript & JQuery: The Missing Manual, Useful Code Into Reusable Commands In this example, when functionName is called Those values are stored in the function's two variables—message and tag. Some of the built-in JavaScript functions we've already seen return values. For example, say you want to calculate the total cost of a sale including sales tax. PROD_ProductID_Price. Here, ProductID is a unique ID code that enables you to determine which product the customer ordered, and Price is the price of the item (without the dollar sign). Here's an example for a product with the code "SP" and a price of $4.99: PROD_SP_4.99. For each TEXT box, add the following: onChange="CalculateTotal(this.form)"

I tried the answer, And this seems to work for all the cases, this may not be best solution but this is what i think through.

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) {
            if ((prices[i] - cost[i - 1]) < 0) { 
                cost.push(zero);
            } else {
                cost.push(prices[i] - cost[i - 1]);
            }
        } else {
            var minCost = Math.min(...prices.slice(0,i));
            if (minCost > prices[i]) {
                cost.push(zero);
            } else {
                if ((prices[i] - minCost) < 0) {
                    cost.push(zero);
                } else {
                    cost.push(prices[i] - minCost);
                }
            }
        } 
    }
    totalCostPurchase = cost.reduce((a, b) => a + b, 0);
    return totalCostPurchase;
}

Creating A Client-Side Javascript Shopping Cart, Information. from. Functions. Sometimes a function simply does something like write a Some of the built-in JavaScript functions we've already seen return values. As you've seen, you can then store that return value into a variable and do For example, say you want to calculate the total cost of a sale including sales tax. function getTotal() { //Here we get the total price by calling our function //Each function returns a number so by calling them we add the values they return together var cakePrice = getCakeSizePrice() + getFillingPrice() + candlesPrice() + insciptionPrice(); //display the result document.getElementById('totalPrice').innerHTML = "Total Price For Cake $"+cakePrice; }

Functions :: Eloquent JavaScript, Then, the user would fill out a form with their personal information, and we'd var cart = { item: "Product 1", price: 35.50, qty: 2 }; var jsonStr Our Sample Project: Winery Our store will rely on PayPal, so we'll have to create a Business Custom shipping rates calculated based on total quantity of items in  A JavaScript function is defined with the function keyword, followed by a name, followed by parentheses (). Function names can contain letters, digits, underscores, and dollar signs (same rules as variables).

The Best JavaScript Examples, The function body of a function created this way must always be wrapped in braces, even In the following example, makeNoise does not list any parameter names, Some functions produce a value, such as power and square , and some don't, such It is possible to store a function value in a new binding, pass it as an  JavaScript Basic: Exercise-10 with Solution. Write a JavaScript program to calculate multiplication and division of two numbers (input from user).

JavaScript Function Objects, Here are some examples of key syntax patterns in JavaScript. of an object) that stores all of the arguments that you passed to a function For more information on the optimization issues: Hint: When making calculations it is possible to use parentheses to As the name implies, it isn't a joy to deal with. See the Pen javascript-math-exercise-18 by w3resource (@w3resource) on CodePen. Improve this sample solution and post your code through Disqus. Previous: Write a JavaScript function to calculate the sum of values in an array. Next: Create a Pythagorean function in JavaScript

Comments
  • Please write the formula. Why the 3th item is 0, it should be 1 (2 - 1), no?
  • Agreed-- a clearer understanding of what the input data represents and your requirements would probably help you get a meaningful answer more quickly.
  • Will the array size increase? If you've some pattern over calculation of every item, you can write recursive function and will be easier to understand.
  • yes, array size will increae, my function works for upto 4 but not working for 10 items
  • Nice. However, this has O(n^2) time complexity.
  • Hi @slider. Nice to e meet you again.. No it does not have O(n^2).. Its rather O(2n) .... no ?
  • It's clearly O(n^2) because you compute the minimum using Math.min(...a.slice(0, i+1)) for each element.
  • hmmm.. i see but i think it's less than n^2, i am not sure how to calculate it exactly.. neverthless if array length is not in hundreds/thousands then difference is hardly noticeble :) Btw good point @slider It's a good learning experience answering with you...
  • I will try to reduce the code and will try to clean up.