Skip to content

Instantly share code, notes, and snippets.

@geomago
geomago / group_by_2.js
Last active June 18, 2020 16:26
group_by_2
let grouped = cars.reduce(
(groups, curr) => {
let key = curr.make + ',' + curr.colour;
if (groups[key]===undefined) {
groups[key] = {count:1, minPrice:curr.price, maxPrice: curr.price };
} else {
groups[key].count++;
groups[key].minPrice = Math.min(groups[key].minPrice, curr.price);
groups[key].maxPrice = Math.max(groups[key].maxPrice, curr.price);
}
@geomago
geomago / group_by.js
Last active June 18, 2020 16:17
group_by
let grouped = cars.reduce(
(groups, curr) => {
let key = curr.make;
if (groups[key]===undefined) {
groups[key] = {count:1, minPrice:curr.price, maxPrice: curr.price };
} else {
groups[key].count++;
groups[key].minPrice = Math.min(groups[key].minPrice, curr.price);
groups[key].maxPrice = Math.max(groups[key].maxPrice, curr.price);
}
@geomago
geomago / remove_dupl_2.js
Last active June 19, 2020 17:18
remove_dupl_2
let unique = cars.filter ( (item,index) => index === cars.findIndex ( car => car.make === item.make && car.model === item.model) );
// RESULT IS:
[
{id:1,make:"Ferrari",model:"812GTS",price:336000,colour:"rosso corsa"},
{id:2,make:"Ferrari",model:"F8 Spider",price:262000,colour:"giallo modena"},
{id:3,make:"Lamborghini",model:"Aventador S",price:329400,colour:"blu le mans"},
{id:4,make:"Bugatti",model:"Chiron Pur Sport",price:3000000,colour:"blue"},
{id:5,make:"McLaren",model:"New GT",price:203000,colour:"helios orange"}
]
@geomago
geomago / remove_dupl.js
Last active June 19, 2020 17:19
remove_dupl
let carsAsString = cars.map( (item) => JSON.stringify(item));
let unique = [...new Set(carsAsString)].map( (item) => JSON.parse(item) );
// RESULT IS:
[
{id:1,make:"Ferrari",model:"812GTS",price:336000,colour:"rosso corsa"},
{id:2,make:"Ferrari",model:"F8 Spider",price:262000,colour:"giallo modena"},
{id:3,make:"Lamborghini",model:"Aventador S",price:329400,colour:"blu le mans"},
{id:4,make:"Bugatti",model:"Chiron Pur Sport",price:3000000,colour:"blue"},
{id:5,make:"McLaren",model:"New GT",price:203000,colour:"helios orange"},
@geomago
geomago / sort_by_2_cols.js
Last active June 19, 2020 05:47
sort_by_2_cols
cars.sort( (a,b) => a.make < b.make ? -1
: a.make > b.make ? 1
: a.price > b.price ? -1
: a.price < b.price ? 1
: 0 );
// cars is now:
[
{id:4,make:"Bugatti",model:"Chiron Pur Sport","price":3000000,colour:"blue"},
{id:8,make:"Bugatti",model:"Chiron Pur Sport","price":3000000,colour:"red"},
@geomago
geomago / find_cars.js
Last active June 19, 2020 05:39
find_cars
let maxPrice = cars.reduce( (prevPrice, current) => prevPrice < current.price ? current.price : prevPrice, 0);
let priceyCars = cars.filter( (car) => car.price==maxPrice );
// RESULT IS:
[{
id: 4,
make: "Bugatti",
model: "Chiron Pur Sport",
price: 3000000,
colour: "blue"
@geomago
geomago / find_max_price_2.js
Last active June 18, 2020 05:04
find_max_price_2
let maxPrice = cars.reduce( (prevPrice, current) => prevPrice < current.price ? current.price : prevPrice, 0);
@geomago
geomago / find_max_price_2.js
Last active June 18, 2020 05:03
find_max_price_2
let maxPrice = cars.reduce( (prevPrice, current) => prevPrice < current.price ? current.price : prevPrice, 0);
@geomago
geomago / max_price.js
Last active June 19, 2020 05:36
max_price
let maxPrice = Math.max(...cars.map(item => item.price));
// RESULT IS: 3000000
@geomago
geomago / find_car_es6.js
Last active June 18, 2020 05:03
find_car_es6
let car = cars.reduce( (prev, current) => prev.price<current.price ? current:prev, {price:0});