210815 TIL
22868 ワード
コード学院の解答
JAVASCRIPT SYNTAX, PART II - Object
オブジェクトの基本概念を学習して使用する問題
ケース
好きなチーム選手とチームが持っている試合情報を作りたい.
質問する
好きなスポーツチームの選手の性別、名前、年齢情報(5名以下)を保存して印刷します.
試合の情報で相手国、チームポイント、相手チームポイントに関する情報を格納し、出力する.
スポーツチームの選手情報と試合情報は出力できますが、値を変更したくないです.
やるべきこと
トラブルシューティング
1.チームオブジェクトの作成
const team = {}
2.選手情報を含むpayers propertyとゲーム情報を含むgames propertyを生成する
_players:[],
_games:[],
3.paylers propertyに選手の名前年齢データを追加する
_players:[
{
firstName: '연경',
lastName: '김',
age: 34
},
{
firstName: '희진',
lastName: '김',
age: 31
},
{
firstName: '효진',
lastName: '양',
age: 33
},
],
4.ゲーム番組に相手チームの国家、チーム点数、相手チーム点数データを追加
_games:[
{
opponent:'Brazil',
teamPoints: 0,
opponentPoints: 3
},
{
opponent:'Japan',
teamPoints: 3,
opponentPoints: 2
},
{
opponent:'Dominican Republic',
teamPoints: 3,
opponentPoints: 2
},
],
5.paylersとgames属性にgetter関数を追加する
get players(){
return this._players;
},
get games(){
return this._games;
},
6.palyersに新しい選手を追加する方法を作成する
addPlayer(firstName,lastName,age){
let player = {
firstName,
lastName,
age
};
this.players.push(player);
},
どうしてfirstName:firstNameじゃないの?ES 6では、パラメータ名とpropertyキー名が同じであれば、propertyキーを省略することができる.この場合、propertyキーは自動的にパラメータ名として生成されます.
7.ゲームに新しいゲームを追加する方法を作成する
addGame(opponent,teamPoints,opponentPoints){
let game = {
opponent,
teamPoints,
opponentPoints
};
this._games.push(game);
}
8.選手とゲームに関するデータの追加と出力
team.addPlayer('정아','박',29);
team.addPlayer('혜진','안',23);
team.addGame('Serbia',0,3);
team.addGame('Kenya',3,0);
team.addGame('turkey',3,2);
team.addGame('Brazil',0,3);
team.addGame('Serbia',0,3);
console.log(team.players);
console.log(team.games);
/*
[ { firstName: '연경', lastName: '김', age: 34 },
{ firstName: '희진', lastName: '김', age: 31 },
{ firstName: '효진', lastName: '양', age: 33 },
{ firstName: '정아', lastName: '박', age: 29 },
{ firstName: '혜진', lastName: '안', age: 23 } ]
[ { opponent: 'Brazil', teamPoints: 0, opponentPoints: 3 },
{ opponent: 'Japan', teamPoints: 3, opponentPoints: 2 },
{ opponent: 'Dominican Republic', teamPoints: 3, opponentPoints: 2 },
{ opponent: 'Serbia', teamPoints: 0, opponentPoints: 3 },
{ opponent: 'Kenya', teamPoints: 3, opponentPoints: 0 },
{ opponent: 'turkey', teamPoints: 3, opponentPoints: 2 },
{ opponent: 'Brazil', teamPoints: 0, opponentPoints: 3 },
{ opponent: 'Serbia', teamPoints: 0, opponentPoints: 3 } ]
*/
完全なコード
const team ={
_players:[
{
firstName: '연경',
lastName: '김',
age: 34
},
{
firstName: '희진',
lastName: '김',
age: 31
},
{
firstName: '효진',
lastName: '양',
age: 33
},
],
_games:[
{
opponent:'Brazil',
teamPoints: 0,
opponentPoints: 3
},
{
opponent:'Japan',
teamPoints: 3,
opponentPoints: 2
},
{
opponent:'Dominican Republic',
teamPoints: 3,
opponentPoints: 2
},
],
get players(){
return this._players;
},
get games(){
return this._games;
},
addPlayer(firstName,lastName,age){
let player = {
firstName,
lastName,
age
};
this.players.push(player);
},
addGame(opponent,teamPoints,opponentPoints){
let game = {
opponent,
teamPoints,
opponentPoints
};
this._games.push(game);
}
}
team.addPlayer('정아','박',29);
team.addPlayer('혜진','안',23);
team.addGame('Serbia',0,3);
team.addGame('Kenya',3,0);
team.addGame('turkey',3,2);
team.addGame('Brazil',0,3);
team.addGame('Serbia',0,3);
console.log(team.players);
console.log(team.games);
Reference
この問題について(210815 TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@sozero/210815-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol