day 8 objects Done

pull/387/head
Jose Linardo 3 years ago
parent 20f7813506
commit cb12fc2c65

@ -1,2 +1,369 @@
console.log(countries) console.log(countries)
alert('Open the console and check if the countries has been loaded') //alert('Open the console and check if the countries has been loaded')
//1. Create an empty object called dog
const dog = new Object()
//2.Print the the dog object on the console
console.log(dog)
//3.Add name, legs, color, age and bark properties for the dog object. The bark property is a method which return woof woof
dog.name = 'Tobby'
dog.legs = 4
dog.color = 'brown'
dog.age = 1
dog.bark = function(){
return 'woof woof'
}
console.log(dog)
//4.Get name, legs, color, age and bark value from the dog object
const entries = Object.values(dog)
console.log(entries)
//5.Set new properties the dog object: breed, getDogInfo
dog.breed = 'mix'
dog.getDogInfo = function(){
return `${this.name} ${this.color} ${this.breed}`
}
console.log(dog.getDogInfo())
console.log(dog)
// Exercises: Level 2
//1.Find the person who has many skills in the users object.
const users = {
Alex: {
email: 'alex@alex.com',
skills: ['HTML', 'CSS', 'JavaScript'],
age: 20,
isLoggedIn: false,
points: 30
},
Asab: {
email: 'asab@asab.com',
skills: ['HTML', 'CSS', 'JavaScript', 'Redux', 'MongoDB', 'Express', 'React', 'Node'],
age: 25,
isLoggedIn: false,
points: 50
},
Brook: {
email: 'daniel@daniel.com',
skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux'],
age: 30,
isLoggedIn: true,
points: 50
},
Daniel: {
email: 'daniel@alex.com',
skills: ['HTML', 'CSS', 'JavaScript', 'Python'],
age: 20,
isLoggedIn: false,
points: 40
},
John: {
email: 'john@john.com',
skills: ['HTML', 'CSS', 'JavaScript', 'React', 'Redux', 'Node.js'],
age: 20,
isLoggedIn: true,
points: 50
},
Thomas: {
email: 'thomas@thomas.com',
skills: ['HTML', 'CSS', 'JavaScript', 'React'],
age: 20,
isLoggedIn: false,
points: 40
},
Paul: {
email: 'paul@paul.com',
skills: ['HTML', 'CSS', 'JavaScript', 'MongoDB', 'Express', 'React', 'Node'],
age: 20,
isLoggedIn: false,
points: 40
}
}
console.log(users)
const usersIds = Object.keys(users)
const userSkills = [];
for(user in usersIds ){
userSkills[user] = users[usersIds[user]].skills.length
}
console.log(users[usersIds[user]].skills.length)
const maxUsersSkills = () => {
console.log(userSkills)
const max = Math.max(...userSkills)
for(user in usersIds){
if(userSkills[user]== max)
return `User with maximun Skills is ${usersIds[user]} `
}
}; console.log(maxUsersSkills())
//2.Count logged in users, count users having greater or equal to 50 points from the following object.
function countLogsAndPoints () {
const userIds = Object.keys(users);
let countLoggedIn = 0;
let countUserPoints = 0
for (user in userIds) {
if (users[userIds[user]].isLoggedIn == true) {
countLoggedIn++;
}
if(users[userIds[user]].points >= 50 ){
countUserPoints++
}
}
return `Users logged are ${countLoggedIn}, Users points greater or equal to 50 are ${countUserPoints} `
}; console.log(countLogsAndPoints())
//3. Find people who are MERN stack developer from the users object
function whoAreMern () {
mernDev = []
const usersIds =Object.keys(users)
for(user in usersIds){
usersSkills = users[usersIds[user]].skills
if(usersSkills.includes('MongoDB' && 'Express' && 'React' && 'Node')){
mernDev.push(usersIds[user])
}
}; return mernDev.join(', ')
}; console.log(whoAreMern())
//4. Set your name in the users object without modifying the original users object
let newUsers = {...users}
newUsers.Jose = {
email: 'jose@gmail.com',
skills: ['HTML', 'CSS', 'JavaScript'],
age: 30,
isLoggedIn: true,
points: 50
}
console.log(newUsers)
//5. Get all keys or properties of users object
const entriesNewUsers = Object.entries(users)
console.log(entriesNewUsers)
//6. Get all the values of users object
const values = Object.values(users)
console.log(values)
//7. Use the countries object to print a country name, capital, populations and languages.
for (let i = 0; i < countries.length; i++) {
let name = countries[i]['name'];
let capital = countries[i]['capital'];
let population = countries[i]['population'];
let languages = countries[i]['languages'];
console.log(`${name}, ${capital}, ${population}, ${languages}`);
}
// Exercises: Level 3
//1. Create an object literal called personAccount. It has firstName, lastName, incomes, expenses properties and it has totalIncome, totalExpense, accountInfo,addIncome, addExpense and accountBalance methods. Incomes is a set of incomes and its description and expenses is a set of incomes and its description.
const personAccount = {
firstName: 'Jane',
lastName: 'Doe',
incomes: {
salary: 5000,
onlinecourses: 15000,
parttime: 1000
},
expenses: {
groceries: 1500,
bills: 3000
},
getTotalIncomes(){
const incomesFrom = Object.keys(this.incomes);
let addIncomes = 0;
for (let i = 0; i < incomesFrom.length; i++){
addIncomes += this.incomes[incomesFrom[i]]
};
return addIncomes;
},
getTotalExpenses () {
const expensesFrom = Object.values(this.expenses);
return expensesFrom.reduce((acc, curr) => acc + curr);
}
};
console.log(personAccount.getTotalIncomes());
console.log(personAccount.getTotalExpenses());
//2.**** Questions:2, 3 and 4 are based on the following two arrays:users and products ()
const usersArr = [
{
_id: 'ab12ex',
username: 'Alex',
email: 'alex@alex.com',
password: '123123',
createdAt:'08/01/2020 9:00 AM',
isLoggedIn: false
},
{
_id: 'fg12cy',
username: 'Asab',
email: 'asab@asab.com',
password: '123456',
createdAt:'08/01/2020 9:30 AM',
isLoggedIn: true
},
{
_id: 'zwf8md',
username: 'Brook',
email: 'brook@brook.com',
password: '123111',
createdAt:'08/01/2020 9:45 AM',
isLoggedIn: true
},
{
_id: 'eefamr',
username: 'Martha',
email: 'martha@martha.com',
password: '123222',
createdAt:'08/01/2020 9:50 AM',
isLoggedIn: false
},
{
_id: 'ghderc',
username: 'Thomas',
email: 'thomas@thomas.com',
password: '123333',
createdAt:'08/01/2020 10:00 AM',
isLoggedIn: false
}
];
const products = [
{
_id: 'eedfcf',
name: 'mobile phone',
description: 'Huawei Honor',
price: 200,
ratings: [
{ userId: 'fg12cy', rate: 5 },
{ userId: 'zwf8md', rate: 4.5 }
],
likes: []
},
{
_id: 'aegfal',
name: 'Laptop',
description: 'MacPro: System Darwin',
price: 2500,
ratings: [],
likes: ['fg12cy']
},
{
_id: 'hedfcg',
name: 'TV',
description: 'Smart TV:Procaster',
price: 400,
ratings: [{ userId: 'fg12cy', rate: 5 }],
likes: ['fg12cy']
}
]
//Imagine you are getting the above users collection from a MongoDB database. a. Create a function called signUp which allows user to add to the collection. If user exists, inform the user that he has already an account.
//b. Create a function called signIn which allows user to sign in to the application
//let userNameInput = prompt('Enter your first name.')
function signUp() {
const usernames = [];
for (let i = 0; i < usersArr.length; i++) {
usernames.push(usersArr[i].username);
}
if (usernames.includes(userNameInput)) {
console.log(`${userNameInput} already exist.`);
} else {
signIn();
}
}
function signIn() {
const newUser = {};
newUser._id = generateId();
newUser.username = userNameInput
newUser.email = prompt('Enter your email address.');
newUser.password = prompt('Set your password.', '6 digits of number');
newUser.createdAt = generateTime();
newUser.isLoggedIn = true;
usersArr.push(newUser);
}
function generateId() {
let possible = 'abcdefghijklmnopqrstuvwxyz0123456789';
const id = [];
for (let i = 0; i < 6; i++) {
id.push(possible.charAt(Math.floor(Math.random() * possible.length)));
}
return id.join('');
}
const generateTime = () => {
const now = new Date()
const day = `${(now.getDate())}`.padStart(2,'0');
const month = `${(now.getMonth()+1)}`.padStart(2,'0');
const year = now.getFullYear();
const date = now.getDate();
const minutes = now.getMinutes()
const hours = now.getHours()
return `${day}/${month}/${year}/${hours}:${minutes}`
}
//console.log(signUp());
console.log(usersArr)
/*let userNameInput = "Enteryour firstname".replace(/\s/g, '_')
console.log(userNameInput)*/
//3.The products array has three elements and each of them has six properties. a. Create a function called rateProduct which rates the product b. Create a function called averageRating which calculate the average rating of a product
//a.
function rateProduct(name) {
for (let i = 0; i < products.length; i++) {
if (products[i].name == name) {
return products[i].ratings;
}
}
}
console.log(rateProduct('mobile phone'));
function averageRating(name) {
let ratingArr = rateProduct(name);
if (ratingArr.length === 0) {
console.log('Ratings not found');
} else if (ratingArr.length) {
let rateSum = 0;
for (let i = 0; i < ratingArr.length; i++) {
rateSum += ratingArr[i].rate;
}
console.log(rateSum / ratingArr.length);
}
}
averageRating('mobile phone');
averageRating('Laptop')
averageRating('TV')
//4. Create a function called likeProduct. This function will helps to like to the product if it is not liked and remove like if it was liked.
/*function currentUser() {
let userNameInput = prompt('Enter your first name.');
for (let i = 0; i < users.length; i++) {
if (users[i].username === userNameInput) {
let userId = users[i]._id;
return userId;
}
}
}*/

Loading…
Cancel
Save