new class js -advanced
This commit is contained in:
@@ -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
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
@@ -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));
|
||||
@@ -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 }));
|
||||
@@ -0,0 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
const logTransformedName = ({ firstName, lastName }) =>
|
||||
console.log(`${lastName}, ${firstName.charAt(0)}.`);
|
||||
|
||||
logTransformedName({ firstName: 'Ladislaus', lastName: 'Jones' });
|
||||
Reference in New Issue
Block a user