Built at: 2024-10-16T09:55:25.150Z Skip to content

part1b

Practice Javascript

Variables
const x = 1;
let y = 5;
console.log(x, y); // 1, 5 are printed
y += 10;
console.log(x, y); // 1, 15 are printed
y = "sometext";
console.log(x, y); // 1, sometext are printed
x = 4; // causes an error
Arrays
const t = [1, -1, 3];
t.push(5);
console.log(t.length); // 4 is printed
console.log(t[1]); // -1 is printed
t.forEach((value) => {
console.log(value); // numbers 1, -1, 3, 5 are printed, each to own line
});
functional programming
const t = [1, -1, 3];
const t2 = t.concat(5); // creates new array
console.log(t); // [1, -1, 3] is printed
console.log(t2); // [1, -1, 3, 5] is printed
const m1 = t.map((value) => value * 2);
console.log(m1); // [2, 4, 6] is printed
const m2 = t.map((value) => "<li>" + value + "</li>");
console.log(m2);
// [ '<li>1</li>', '<li>2</li>', '<li>3</li>' ] is printed
const t3 = [1, 2, 3, 4, 5];
const [first, second, ...rest] = t;
console.log(first, second); // 1, 2 is printed
console.log(rest); // [3, 4, 5] is printed
objects
const object1 = {
name: "Arto Hellas",
age: 35,
education: "PhD",
};
const object2 = {
name: "Full Stack web application development",
level: "intermediate studies",
size: 5,
};
const object3 = {
name: {
first: "Dan",
last: "Abramov",
},
grades: [2, 3, 5, 3],
department: "Stanford University",
};
console.log(object1.name); // Arto Hellas is printed
const fieldName = "age";
console.log(object1[fieldName]); // 35 is printed
object1.address = "Helsinki";
object1["secret number"] = 12341;
functions
const sum = (p1, p2) => {
console.log(p1);
console.log(p2);
return p1 + p2;
};
const result = sum(1, 5);
console.log(result);
const square = (p) => {
console.log(p);
return p * p;
};
const square = (p) => p * p;
const t = [1, 2, 3];
const tSquared = t.map((p) => p * p);
// tSquared is now [1, 4, 9]
function product(a, b) {
return a * b;
}
const result = product(2, 6);
// result is now 12
const average = function (a, b) {
return (a + b) / 2;
};
const result = average(2, 5);
// result is now 3.5

Exercises

App.js add console.log in Header
const Header = (props) => {
console.log(props);
return <h1>{props.course}</h1>;
};

1.3

Given information in new format, to complete the app.

const course = "Half Stack application development";
const part1 = {
name: "Fundamentals of React",
exercises: 10,
};
const part2 = {
name: "Using props to pass data",
exercises: 7,
};
const part3 = {
name: "State of a component",
exercises: 14,
};

1.4

In an array

const course = 'Half Stack application development'
const parts = [
{
name: 'Fundamentals of React',
exercises: 10
},
{
name: 'Using props to pass data',
exercises: 7
},
{
name: 'State of a component',
exercises: 14
}
]

1.5

In an object

const course = {
name: 'Half Stack application development',
parts: [
{
name: 'Fundamentals of React',
exercises: 10
},
{
name: 'Using props to pass data',
exercises: 7
},
{
name: 'State of a component',
exercises: 14
}
]
}

My solutions

My solutions:
(Please complete your own solutions before click here.)

1.3

App.js
const Header = (props) => {
console.log(props);
return <h1>{props.course}</h1>;
};
const Part = (props) => {
return (
<p>
{props.part} {props.exercises}
</p>
);
};
const Content = (props) => {
return (
<>
<Part part={props.part1.name} exercises={props.part1.exercises} />
<Part part={props.part2.name} exercises={props.part2.exercises} />
<Part part={props.part3.name} exercises={props.part3.exercises} />
</>
);
};
const Total = (props) => {
return (
<p>
Number of exercises{" "}
{props.part1.exercises + props.part2.exercises + props.part3.exercises}
</p>
);
};
function App() {
const course = "Half Stack application development";
const part1 = {
name: "Fundamentals of React",
exercises: 10,
};
const part2 = {
name: "Using props to pass data",
exercises: 7,
};
const part3 = {
name: "State of a component",
exercises: 14,
};
return (
<div>
<Header course={course} />
<Content part1={part1} part2={part2} part3={part3} />
<Total part1={part1} part2={part2} part3={part3} />
</div>
);
}
export default App;

1.4

App.js
const Header = (props) => {
console.log(props);
return <h1>{props.course}</h1>;
};
const Part = (props) => {
return (
<p>
{props.part} {props.exercises}
</p>
);
};
const Content = (props) => {
return (
<>
<Part part={props.parts[0].name} exercises={props.parts[0].exercises} />
<Part part={props.parts[1].name} exercises={props.parts[1].exercises} />
<Part part={props.parts[2].name} exercises={props.parts[2].exercises} />
</>
);
};
const Total = (props) => {
return (
<p>
Number of exercises{" "}
{props.parts[0].exercises +
props.parts[1].exercises +
props.parts[2].exercises}
</p>
);
};
function App() {
const course = "Half Stack application development";
const parts = [
{
name: "Fundamentals of React",
exercises: 10,
},
{
name: "Using props to pass data",
exercises: 7,
},
{
name: "State of a component",
exercises: 14,
},
];
return (
<div>
<Header course={course} />
<Content parts={parts} />
<Total parts={parts} />
</div>
);
}
export default App;

1.5

App.js
const Header = (props) => {
console.log(props);
return <h1>{props.course.name}</h1>;
};
const Part = (props) => {
return (
<p>
{props.part} {props.exercises}
</p>
);
};
const Content = (props) => {
return (
<>
<Part
part={props.course.parts[0].name}
exercises={props.course.parts[0].exercises}
/>
<Part
part={props.course.parts[1].name}
exercises={props.course.parts[1].exercises}
/>
<Part
part={props.course.parts[2].name}
exercises={props.course.parts[2].exercises}
/>
</>
);
};
const Total = (props) => {
return (
<p>
Number of exercises{" "}
{props.course.parts[0].exercises +
props.course.parts[1].exercises +
props.course.parts[2].exercises}
</p>
);
};
function App() {
const course = {
name: "Half Stack application development",
parts: [
{
name: "Fundamentals of React",
exercises: 10,
},
{
name: "Using props to pass data",
exercises: 7,
},
{
name: "State of a component",
exercises: 14,
},
],
};
return (
<div>
<Header course={course} />
<Content course={course} />
<Total course={course} />
</div>
);
}
export default App;