JS Snippets: Array of Objects: Difference between revisions
From WikiMLT
Line 46: | Line 46: | ||
.reduce((acc, { price }) => acc + price, 0) | .reduce((acc, { price }) => acc + price, 0) | ||
).toFixed(2); | ).toFixed(2); | ||
} | |||
</syntaxhighlight> | |||
== Filter the Objects by a Property and Map a new Array == | |||
<syntaxhighlight lang="typescript" class="code-continue"> | |||
import products from "./data.mjs"; | |||
function sumPrices(data: { product: string, type: string, price: number }[]) { | |||
return data | |||
.filter(({ type }) => type === "savory") | |||
.map(({ item, price }) => ({ item, price })); | |||
} | } | ||
</syntaxhighlight><noinclude> | </syntaxhighlight><noinclude> |
Revision as of 15:20, 11 March 2023
References
Data file of the examples
data.mjs
export default [
{ product: "#1", type: "sweet", price: 7.54 },
{ product: "#2", type: "savory", price: 2.55 },
{ product: "#3", type: "savory", price: 3.79 }
];
Sort Objects by a Property (Price)
import products from "./data.mjs";
function sortProducts(data: { product: string, type: string, price: number }[]) {
return data.sort((a, b) => a.price - b.price);
}
Reduce the prices into a Sum
import products from "./data.mjs";
function sumPrices(data: { product: string, type: string, price: number }[]) {
return parseFloat(
data.reduce((acc, { price }) => acc + price, 0)
).toFixed(2);
}
Reduce the prices of certain product type into a Sum
import products from "./data.mjs";
function sumPrices(data: { product: string, type: string, price: number }[]) {
return parseFloat(
data
.filter(({ type }) => type === "savory")
.reduce((acc, { price }) => acc + price, 0)
).toFixed(2);
}
Filter the Objects by a Property and Map a new Array
import products from "./data.mjs";
function sumPrices(data: { product: string, type: string, price: number }[]) {
return data
.filter(({ type }) => type === "savory")
.map(({ item, price }) => ({ item, price }));
}