new class js -advanced

This commit is contained in:
Philippe Torrel
2026-06-29 11:35:03 +02:00
parent ee8a87bf2a
commit 31c13250b0
104 changed files with 2632 additions and 138 deletions

View File

@@ -0,0 +1,7 @@
'use strict';
const foo = ({ a = 1, b = 2 }) => `a: ${a}, b: ${b}`;
console.log(foo({ a: 7 })); // => a: 7, b: 2
console.log(foo({ b: 7 })); // => a: 1, b: 7
console.log(foo({ a: 7, b: 8 })); // => a: 7, b: 8

View File

@@ -0,0 +1,15 @@
'use strict';
const productsFromCSV = (csv) =>
csv
.split('\n')
.slice(1)
.map((str) => str.trim());
const productsCSV = `name, category, price
Klingon Letter Opener, Office Warfare, 19.99
Backpack of Holding, Travel, 29.99
Tardis Alarmclock, Merchandise, 15.99`;
const products = productsFromCSV(productsCSV);
console.log(products);

View File

@@ -0,0 +1,13 @@
'use strict';
const productFromCSV = (productString) => {
const [name, category, price] = productString.split(', ');
return {
name: name,
category: category,
price: price,
};
};
const product = productFromCSV('Backpack of Holding, Travel, 29.99');
console.dir(product);

View File

@@ -0,0 +1,18 @@
'use strict';
const productFromCSV = (productString) => {
const productArray = productString.split(', ');
const name = productArray[0];
const category = productArray[1];
const price = productArray[2];
return {
name: name,
category: category,
price: price,
};
};
const product = productFromCSV('Backpack of Holding, Travel, 29.99');
console.dir(product);

View File

@@ -0,0 +1,25 @@
'use strict';
const trim = (s) => s.match(/\W*(.+)\W*/)[1];
const productFromArray = ([name, category, price]) => ({
name,
category,
price,
});
const productsFromCSV = (csv) =>
csv
.split('\n')
.slice(1)
.map(trim)
.map((s) => s.split(', '))
.map(productFromArray);
const productsCSV = `name, category, price
Klingon Letter Opener, Office Warfare, 19.99
Backpack of Holding, Travel, 29.99
Tardis Alarmclock, Merchandise, 15.99`;
const products = productsFromCSV(productsCSV);
console.log(products);

View File

@@ -0,0 +1,23 @@
'use strict';
const trim = (s) => s.match(/\W*(.+)\W*/)[1];
const productFromCSV = (productString) => {
const [name, category, price] = productString.split(', ');
return {
name,
category,
price,
};
};
const productsFromCSV = (csv) =>
csv.split('\n').slice(1).map(trim).map(productFromCSV);
const productsCSV = `name, category, price
Klingon Letter Opener, Office Warfare, 19.99
Backpack of Holding, Travel, 29.99
Tardis Alarmclock, Merchandise, 15.99`;
const products = productsFromCSV(productsCSV);
console.log(products);

View File

@@ -0,0 +1,12 @@
'use strict';
const formatProduct = ({ name, price }) =>
`* ${name} - buy now for only $${price}`;
const product = {
name: 'Klingon Letter Opener',
category: 'Office Warfare',
price: '19.99',
};
console.log(formatProduct(product));

View File

@@ -0,0 +1,8 @@
'use strict';
const distance = (
{ x: xOrigin, y: yOrigin },
{ x: xDestination, y: yDestination }
) => Math.sqrt((yDestination - yOrigin) ** 2 + (xDestination - xOrigin) ** 2);
console.log(distance({ x: 1, y: 1 }, { x: 5, y: 1 }));

View File

@@ -0,0 +1,6 @@
'use strict';
const logTransformedName = ({ firstName, lastName }) =>
console.log(`${lastName}, ${firstName.charAt(0)}.`);
logTransformedName({ firstName: 'Ladislaus', lastName: 'Jones' });