130 lines
3.4 KiB
JavaScript

const game = {
team1: "Bayern Munich",
team2: "Borrussia Dortmund",
players: [
[
"Neuer",
"Pavard",
"Martinez",
"Alaba",
"Davies",
"Kimmich",
"Goretzka",
"Coman",
"Muller",
"Gnarby",
"Lewandowski",
],
[
"Burki",
"Schulz",
"Hummels",
"Akanji",
"Hakimi",
"Weigl",
"Witsel",
"Hazard",
"Brandt",
"Sancho",
"Gotze",
],
],
score: "4:0",
scored: ["Lewandowski", "Gnarby", "Lewandowski", "Hummels"],
date: "Nov 9th, 2037",
odds: {
team1: 1.33,
x: 3.25,
team2: 6.5,
},
};
const [player1, player2] = game.players;
const [gk, ...fieldPlayers] = player1;
const allPlayers = [...player1, ...player2];
const playersFinal = [...player1, "Thiago", "Countinho", "Periscic"];
const {
odds: { team1, x: draw, team2 },
} = game;
const printGoals = function (...players) {
console.log(`${players.length} goals we are scored`);
};
team1 < team2 && console.log("Team 1 is more likely to win");
team1 > team2 && console.log("Team 2 is more likely to win");
printGoals(...game.scored);
const weekdays = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
// sehe den Kommentar unten
const openingHours = {
[weekdays[3]]: {
open: 12,
close: 22,
},
[weekdays[4]]: {
open: 11,
close: 23,
},
[weekdays[5]]: {
open: 0, // Open 24 hours
close: 24,
},
};
const restaurant = {
name: "Classico Italiano",
location: "Via Angelo Tavanti 23, Firenze, Italy",
categories: ["Italian", "Pizzeria", "Vegetarian", "Organic"],
starterMenu: ["Focaccia", "Bruschetta", "Garlic Bread", "Caprese Salad"],
mainMenu: ["Pizza", "Pasta", "Risotto"],
order: function (starterIndex, mainIndex) {
return [this.starterMenu[starterIndex], this.mainMenu[mainIndex]];
},
// man kann ein Objekt außerhalb eines anderen Objectes definieren, und es nachträglich bei einem anderen Objekt verwenden
openingHours,
orderDelivery: function ({
starterIndex = 1,
mainIndex = 0,
time = "20:00",
address,
}) {
console.log(
`Order recieved! ${this.starterMenu[starterIndex]} and ${this.mainMenu[mainIndex]} will be delivered to ${address} at ${time}`
);
},
};
for (const day of weekdays) {
console.log(day);
// Funktionalität vom nullish und optional chaning Operatoren
// (man vermeindet eine Fehler-Ausgabe wenn ein Wert nicht existiert, als auch wenn ein Wert "0" ist)
const open = restaurant.openingHours[day]?.open ?? "closed";
console.log(`On ${day} we open at ${open}`);
}
// console.log(openingHours);
// console.log(restaurant.openingHours.sum?.open);
const menu = [...restaurant.starterMenu, ...restaurant.mainMenu];
for (const item of menu) {
console.log(item);
}
for (const [index, item] of menu.entries()) {
// console.log(item);
// console.log(`${item[0]} : ${item[1]}`);
// console.log(...item);
console.log(`${index} : ${item}`);
}
// optional chaning Operator, gibt kein Fehler aus, wenn eine Eigenschaft/Variable/Wert eines Objektes nicht existiert
console.log(restaurant.openingHours.mon?.open);
const users = [];
// längere Version der Überprüfung
if (users.length > 0) console.log(users[0].name);
else console.log("User array is empty");
// kurzere Version Mithilfe des Optional chaining Operators und mit dem nullish Operator
console.log(users[0]?.name ?? "User array is empty");