parent
6f863b0247
commit
d8ee3a5910
@ -0,0 +1,211 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Object</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<script>
|
||||
// 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
|
||||
// }
|
||||
// };
|
||||
// //TODO: Find the person who has many skills in the users object.
|
||||
// const copyUsers = Object.assign({},users);
|
||||
// const usersKeys = Object.keys(copyUsers);
|
||||
// const usersValues = Object.values(copyUsers);
|
||||
// const usersEntries = Object.entries(copyUsers);
|
||||
// // usersValues.forEach(value => {
|
||||
// // console.log(value.skills)
|
||||
// // });
|
||||
|
||||
|
||||
// usersKeys.forEach(person => {
|
||||
// // count logged in users, count users having greater than equal to 50 points from the following object.
|
||||
// // if(copyUsers[person].points >= 50){
|
||||
// // console.log(person);
|
||||
// // }
|
||||
|
||||
// //Find people who are MERN stack developer from the users object
|
||||
// const skills = copyUsers[person].skills;
|
||||
// if(skills.includes('MongoDB') && skills.includes('Express') && skills.includes('React') && skills.includes('Node')){
|
||||
// console.log("MERN stacker: "+ person);
|
||||
// }
|
||||
// });
|
||||
// users.Nam = {
|
||||
// email: 'nam@nam.com',
|
||||
// skills: ['HTML', 'CSS', 'JavaScript', 'MongoDB', 'Express', 'React', 'Node'],
|
||||
// age: 20,
|
||||
// isLoggedIn: false,
|
||||
// points: 100
|
||||
// };
|
||||
// Set your name in the users object without modifying the original users object
|
||||
// console.log(users);
|
||||
|
||||
//Exercise lv3
|
||||
const users = [
|
||||
{
|
||||
_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,
|
||||
}
|
||||
]
|
||||
// .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.
|
||||
function signUp(user) {
|
||||
for (let i = 0; i < users.length; i++) {
|
||||
const usr = users[i];
|
||||
if (usr[username] === user[username]) {
|
||||
console.log('The user is already existed');
|
||||
break;
|
||||
}
|
||||
users.push(user);
|
||||
};
|
||||
}
|
||||
|
||||
function signIn(user) {
|
||||
user.isLoggedIn = true;
|
||||
}
|
||||
|
||||
|
||||
signIn(users[4]);
|
||||
console.log(users[4]);
|
||||
|
||||
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'],
|
||||
},
|
||||
]
|
||||
// a. Create a function called rateProduct which rates the product
|
||||
function rateProduct(userId, rate, proId) {
|
||||
for (let i = 0; i < products.length; i++) {
|
||||
const pro = products[i];
|
||||
if (pro[_id] === proId) {
|
||||
pro[ratings].push({ userId, rate });
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//b. Create a function called averageRating which calculate the average rating of a product
|
||||
function likeProduct(userId, proId) {
|
||||
for (let i = 0; i < products.length; i++) {
|
||||
const pro = products[i];
|
||||
if (pro[_id] === proId) {
|
||||
pro[likes].push(userId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
Loading…
Reference in new issue