link2466 link2467 link2468 link2469 link2470 link2471 link2472 link2473 link2474 link2475 link2476 link2477 link2478 link2479 link2480 link2481 link2482 link2483 link2484 link2485 link2486 link2487 link2488 link2489 link2490 link2491 link2492 link2493 link2494 link2495 link2496 link2497 link2498 link2499 link2500 link2501 link2502 link2503 link2504 link2505 link2506 link2507 link2508 link2509 link2510 link2511 link2512 link2513 link2514 link2515 link2516 link2517 link2518 link2519 link2520 link2521 link2522 link2523 link2524 link2525 link2526 link2527 link2528 link2529 link2530 link2531 link2532 link2533 link2534 link2535 link2536 link2537 link2538 link2539 link2540 link2541 link2542 link2543 link2544 link2545 link2546 link2547 link2548 link2549 link2550 link2551 link2552 link2553 link2554 link2555 link2556 link2557 link2558 link2559 link2560 link2561 link2562 link2563 link2564 link2565 link2566 link2567 link2568 link2569 link2570 link2571 link2572 link2573 link2574 link2575 link2576 link2577 link2578 link2579 link2580 link2581 link2582 link2583 link2584 link2585 link2586 link2587 link2588 link2589 link2590 link2591 link2592 link2593 link2594 link2595 link2596 link2597 link2598 link2599 link2600 link2601 link2602

[Vue.js] Calculated properties for each element in array

there is a use case where my data store has an array of products, each with a price and quantity.

What I would like to do is calculate the ‘total’ for each product (price x quantity). I can do so by created a new computed property which re-calculates the entire array, appending a new property with the total.

The issue is, this requires recalculating every item in the array every time a single item changes.

I could use a component to calculate and display, but I also need to calculate a total (which is the sum of all computed prices on each product).

Is there a more efficient way to do this?

“Product ID”: 1,
“Price”: 10,
“Quantity”: 5,
“Calculated Total”: 50
“Product ID”: 2,
“Price”: 12,
“Quantity”: 10,
“Calculated Total”: 120

Solution :

You can use a computed value to map through the original array and sum the values. e.g say the original array is named originalArray, do:

computed: {
computedTotal() {
let sum = 0 => sum += item[“Calculated Total”])
return sum